配置网络设置

mars.domain250.example.com 上执行以下任务,配置网络络设置
mars 配置为具有以下网络配置:

  • 主机名: mars.domain250.example.com
  • IP 地址: 172.25.250.100
  • 子网掩码: 255.255.255.0
  • 网关: 172.25.250.254

解题

设置主机名
# hostnamectl set-hostname node1.domain250.example.com
查看所有网络接口信息
# nmcli connection show
设置静态IP、配置开机自动激活
# nmcli connection modify "Wired connection 1" ipv4.addresses 172.25.250.100/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254 ipv4.method manual connection.autoconnect yes
激活配置
# nmcli connection up "Wired connection 1"
检查网卡是否配置成功
# ifconfig
检查主机名是否配置成功
# hostname

注意事项

  • 如果默认connection没有自动连接还需要加上选项 connection.autoconnect yes
  • 网络配置完成后,后续的题就可以通过ssh远程操作完成。
  • 如果题要求配置DNS,则还需要指定ipv4.dns选项
  • 设置网卡时需注意网卡名是否带有特殊符号, 包括含有空格, 都需要用引号把名字括起来
  • 设置网卡时需注意前面是要有的

配置您的系统以使用默认存储库

YUM 存储库已可以从 http://content/rhel8.0/x86_64/dvd/BaseOS
http://content/rhel8.0/x86_64/dvd/AppStream 使用配置您的系统,以将这些位置用作默认存储库。

解题

[root@mars ~]# cd /etc/yum.repos.d/
[root@mars yum.repos.d]# vi rhcsa.repo
[base]
name=base
baseurl=http://content/rhel8.0/x86_64/dvd/BaseOS
enabled=1
gpgcheck=0
[app]
name=app
baseurl=http://content/rhel8.0/x86_64/dvd/AppStream
enabled=1
gpgcheck=0
[root@mars yum.repos.d]# yum clean all #清空yum源
[root@mars yum.repos.d]# yum repolist #初始化列出所有可用的yum源
[root@mars yum.repos.d]# yum install -y vim #考试机可能没有vim,安装vim测试yum源是否正常使用

注意事项

  • 源库的名字可以自定义, 除非题目有要求.
  • baseurl全部小写.
  • 填写源的路径时能复制尽量复制别手敲,避免错误.

调试 SELinux

非标准端口 82 上运行的 Web 服务器在提供内容时遇到问题。根据需要调试并解决问题,使其满足以
下条件:

  • 系统上的 Web 服务器能够提供 /var/www/html 中所有现有的 HTML
    文件(注:不要删除或以其他方式改动现有的文件内容)
  • Web 服务器在端口 82 上提供此内容
  • Web 服务器在系统启动时自动启动

解题

检查selinux

# egrep -i selinux /etc/sysconfig/selinux |egrep -v "#"
selinux未开启就需要进配置文件把selinux设置为enforcing
# vim /etc/sysconfig/selinux
SELINUX=enforcing
重启使其生效
# reboot
检查semanage是否有安装
# semanage -h
如果没有需安装semanage
# yum install policycoreutils-python -y

selinux 运行82 非标端口运行

[root@mars ~]# systemctl start httpd
Job for httpd.service failed because the control process exited with error
code.
See "systemctl status httpd.service" and "journalctl -xe" for details.
[root@mars ~]# journalctl -xe ##查看报错信息
# semanage port -a -t PORT_TYPE -p tcp 82 ##提示的解决方案
[root@mars ~]# semanage port -l |grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443,
9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
[root@mars ~]# semanage port -a -t http_port_t -p tcp 82 #参考journalctl -xe提示解决方案
[root@mars ~]# semanage port -l |grep http
[root@mars ~]# systemctl start httpd ##开启httpd
[root@mars ~]# systemctl enable httpd ##开机自启httpd

SELINUX类型上下文

[root@mars ~]# cd /var/www/html/
[root@mars html]# ls
file1 file2 file3
[root@mars html]# ll -Z
total 12
-rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 14 Nov
26 13:43 file1
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 14 Nov
26 13:43 file2
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 14 Nov
26 13:43 file3
[root@mars html]# cd
[root@mars ~]# curl 127.0.0.1:82/file1
[root@mars ~]# man semanage fcontext
[root@mars ~]# [root@mars ~]# semanage fcontext -m -t httpd_sys_content_t
"/var/www/html/file1"
[root@mars ~]# restorecon -Rv /var/www/html/
[root@mars ~]# ll -Z /var/www/html/
total 12
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 14 Nov
26 13:43 file1
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 14 Nov
26 13:43 file2
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 14 Nov
26 13:43 file3
[root@mars ~]# curl 127.0.0.1:82/file1
EX200 Testing

防火墙放行

[root@mars ~]# firewall-cmd --add-port=82/tcp --permanent
success
[root@mars ~]# firewall-cmd --reload
success
###验证
[kiosk@foundation0 ~]$ curl 172.25.250.100:82/file1
EX200 Testing

注意事项

  • Selinux从做题开始必须一直开着,不然容易被机器判定为0分;
  • firewall必须放行httpd端口;
  • Selinux联系上下文 file所有文件权限必须一致;
  • semanage fcontext命令记不准确,可以用man semanage fcontext查看使用样例;
  • semanage fcontext修改了Selinux文件权限后,必须用restorecon -Rv
    /var/www/html/刷新目录生效;

创建用户帐户

创建下列用户、组和组成员资格:

  • 名为 sysmgrs 的组
  • 用户 natasha ,作为次要组从属于 sysmgrs
  • 用户 harry ,作为次要组还从属于 sysmgrs
  • 用户 sarah ,无权访问系统上的交互式 shell 且不是 sysmgrs 的成员
  • natashaharrysarah 的密码应当都是 flectrag

解题

[root@mars ~]# groupadd sysmgrs
[root@mars ~]# useradd -G sysmgrs natasah
[root@mars ~]# useradd -G sysmgrs harry
[root@mars ~]# useradd -s /sbin/nolgin sarah
[root@mars ~]# echo "flectrag" |passwd --stdin natasha
[root@mars ~]# echo "flectrag" |passwd --stdin harry
[root@mars ~]# echo "flectrag" |passwd --stdin sarah
检查密码是否设置成功
# su - natasha
$ su - harry
$ su - natasha
$ su - sarah
$ exit

注意事项

  • 无权访问系统上的交互式是 /sbin/nologin.
  • root 用户su 到其他用户不需要密码,可以用其他用户su到其他用户检测密码是否正确.
  • 账户和密码用复制粘贴避免手动输入错误.

计划任务cron

题目1:配置 cron 作业,每隔 25 分钟运行以下命令: logger "EX200 in progress",以用户 natasha 身份运行

题目2: 每天14:23 分natasha执行 echo “Hi rhcsa”

解题1

BASH
[root@mars ~]# systemctl status crond #查看服务是否为开机自启状态

[root@mars ~]# systemctl enable crond #crond开机自启

[root@mars ~]# which logger

/usr/bin/logger

[root@mars ~]# crontab -e -u natasha #创建natasha定时任务

*/2 * * * * /usr/bin/logger "EX200 in progress"

[root@mars ~]# crontab -l -u natasha #查看natasha创建的定时任务

*/2 * * * * /usr/bin/logger "EX200 in progress"

[root@mars ~]# tail /var/log/cron #2分钟查看日志

解题2

[root@mars ~]# systemctl status crond  #查看服务是否为开机自启状态

[root@mars ~]# systemctl enable crond #crond开机自启

[root@mars ~]# which echo

/usr/bin/echo

[root@mars ~]# crontab -e -u natasha #创建natasha定时任务

23 14 * * * /usr/bin/echo “Hi rhcsa”

[root@mars ~]# crontab -l -u natasha #查看natasha创建的定时任务

23 14 * * * /usr/bin/echo “Hi rhcsa”

[root@mars ~]# tail /var/log/cron #查看日志

crontab文件格式

* * * * *
Minute Hours Day-of-Month Month Day -of-Week Command
分钟 小时 命令
0-59 0-23 1-31 1-12 0-6 job
  • 时间: :每 /5:每隔分钟 ,:不同的时间段
  • -:表示范围
  • 星期0为星期日

注意事项

  • 一定要检查crond服务是否开启,以及是否开机自启
  • logger需要用which系统命令的位置
  • crontab 格式注意
  • 记得用tail /var/log/cron 检查日志

创建协作目录

创建具有以下特征的协作目录 /home/managers

  • /home/managers 的组用权是 sysmgrs
  • 目录应当可被 sysmgrs 的成员读取、写入和访问,但任何其他用户不具这些权限。(当然,root
  • 用户有权访问系统上的所有文件和目录)

/home/managers 中创建的文件自动将组所有权设置到 sysmgrs

解题1

BASH
[root@mars ~]# mkdir /home/managers

[root@mars ~]# ll -d /home/managers/

drwxr-xr-x. 2 root root 6 Nov 26 20:38 /home/managers/

[root@mars ~]# chown :sysmgrs /home/managers/

[root@mars ~]# chmod 2770 /home/managers/

[root@mars ~]# ll -d /home/managers/

drwxrws---. 2 root sysmgrs 6 Nov 26 20:38 /home/managers/

解题2

创建目录

[root@mars ~]# mkdir /home/managers

更改目录的属组

[root@mars ~]# chgrp sysmgrs /home/managers/

查看/home/managers所拥有的权限

[root@mars ~]# ll -d /home/managers/ 
drwxr-xr-x. 2 root sysmgrs 6 Oct 26 12:12 /home/managers/

设定目录的权限,目录的访问权限即为x权限rwx=7,自动变成sysmgrs 组用特殊权限2

[root@mars ~]# chmod 2770 /home/managers
或者[root@mars ~]# chmod 2770 /home/managers/

注意事项

  • chown 可以用来更改文件的所有者和所有组,如chown harry:harry /home/ ,意为把home的所有者和所有组改成harry
  • chgrp 允许普通用户改变文件所属的组,只要该用户是该组的一员,但不能改变所有者
  • chmod 控制用户对文件的权限的命令;chmod赋予的高级权限分为:"4"SUID普通用户提权,普通用户对该文件的所有操作相当于是root权限(只针对二进制、可执行的文件);"2"SGID获得该程序所属用户组的权限,这个用户组的所有用户在该文件夹下创建的任何一个文件夹或文件它们的群组都会与此目录的群组相同;"1"SBIT限制用户对文件执行的权限,当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。
  • 2770 "2"sgid,"7"wrx(w读 + r 写 + x 执行),"0"为什么权限都没有

注 意 题 目 要 求 要 不 要 赋 予 高 级 权 限

配置NTP

配置您的系统,使其成为 materials.example.comNTP 客户端。(注:materials.example.com 是 classroom.example.com 的 DNS 别名

解题

BASH
[root@mars ~]# yum install chrony -y
[root@mars ~]# vim /etc/chrony.conf
Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
#server _gateway iburst #这行注释掉
server materials.example.com iburst #添加这行

[root@mars ~]# systemctl restart chronyd

[root@mars ~]# systemctl status chronyd

[root@mars ~]# chronyc sources

210 Number of sources = 1

MS Name/IP address Stratum Poll Reach LastRx Last sample

============================================================================

===

^* classroom.example.com 8 6 17 31 +5277ns[ +58us] +/-

363us

注意事项

  • 记得查看chronyd状态

  • 如果没有安装chrony,记得yum安装

配置autofs

配置 autofs ,以按照如下所述自动挂载远程用户的主目录:

  • materials.example.com ( 172.25.254.254 ) NFS 导出 /rhome 到您的系统。此文件系统包含
  • 为用户 remoteuser1 预配置的主目录
  • remoteuser1 的主目录是 materials.example.com:/rhome/remoteuser1
  • remoteuser1 的主目录应自动挂载到本地 /rhome 下的 /rhome/remoteuser1
  • 主目录必须可供其用户 写入
  • remoteuser1 的密码是 flectrag

解题

第一步:安装autofs
[root@mars ~]# yum -y install autofs
第二步:查找autofs文件
[root@mars ~]# rpm -qc autofs
/etc/auto.master
/etc/auto.misc
/etc/auto.net
/etc/auto.smb
/etc/autofs.conf
/etc/autofs_ldap_auth.conf
/etc/sysconfig/autofs
/usr/lib/systemd/system/autofs.service
第三步:编写配置文件
[root@mars ~]# vim /etc/auto.master
增加上层接口目录
#
/misc /etc/auto.misc
/rhome /etc/auto.rhome
第四步:编写子配置文件
[root@mars ~]# cp /etc/auto.misc /etc/auto.rhome
[root@mars ~]# vim /etc/auto.rhome
#cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom #注释掉此行
remoteuser1 -fstype=nfs,vers=4,rw materials.example.com:/rhome/remoteuser
第五步:设置开机自启动
[root@mars ~]# systemctl restart autofs.service
[root@mars ~]# systemctl enable autofs.service
第六步:测试是否成功,远程登录
[root@mars ~]# ssh remoteuser1@mars
remoteuser1@mars's password:
Activate the web console with: systemctl enable --now cockpit.socket

This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register

Last login: Wed Oct 26 12:53:54 2022 from 172.25.250.100
[remoteuser1@mars ~]$ pwd
/rhome/remoteuser1

注意事项

  • 注意autofs服务是否安装没安装yum安装

配置/var/tmp/fstab 权限

将文件 /etc/fstab 复制到 /var/tmp/fstab 。配置 /var/tmp/fstab 的权限以满足如下条件:

  • 文件 /var/tmp/fstabroot 用户所有
  • 文件 /var/tmp/fstab 属于组 root
  • 文件 /var/tmp/fstab 应不能被任何人执行
  • 用户 natasha 能够读取和写入 /var/tmp/fstab
  • 用户 harry 无法写入或读取 /var/tmp/fstab
  • 所有其他用户(当前或未来)能够读取 /var/tmp/fstab

解题

BASH
[root@mars ~]# cp /etc/fstab /var/tmp/fstab

[root@mars ~]# ll /var/tmp/fstab

-rw-r--r--. 1 root root 427 Nov 27 09:29 /var/tmp/fstab

[root@mars ~]# man setfacl

[root@mars ~]# setfacl -m u:natasha:rw- /var/tmp/fstab

[root@mars ~]# setfacl -m u:harry:- /var/tmp/fstab

[root@mars ~]# getfacl /var/tmp/fstab

getfacl: Removing leading '/' from absolute path names

# file: var/tmp/fstab

# owner: root

# group: root

user::rw-

user:natasha:rw-

user:harry:---

group::r--

mask::rw-

other::r--

注意事项

  • 考点setfaclgetfacl的使用,如果不知道记得man

配置用户帐户

配置用户 manalo ,其用户 ID3533 。此用户的密码应当为 flectrag

解题

BASH
[root@mars ~]# useradd -u 3533 manalo
[root@mars ~]# echo flectrag |passwd --stdin manalo
Changing password for user manalo.
passwd: all authentication tokens updated successfully.
[root@mars ~]# id manalo
uid=3533(manalo) gid=3533(manalo) groups=3533(manalo)

注意事项

  • 添加用户名并指定ID的命令是 useradd -u ID name.

查找文件

查找当 jacques 所有的所有文件并将其副本放入 /root/findfiles 目录

解题

第一步:查看用户和目录是否存在

[root@mars ~]# id jacques uid=1003(jacques) gid=1003(jacques) groups=1003(jacques)

[root@mars ~]# ll -d /root/findfiles

ls: cannot access '/root/findfiles': No such file or directory

第二步:创建目录

# 如果发现目录不存在,于是创建目录 

[root@mars ~]# mkdir /root/findfiles

第三步:查找文件并放入新建的目录中

[root@mars ~]# find / -user jacques -exec cp -a {} /root/findfiles \;

第四步:检查文件是否查找成功

[root@mars ~]# ll /root/findfiles/ 

total 0

-rw-r--r--. 1 jacques root 0 Oct 12 10:12 gamelan

-rw-r--r--. 1 jacques jacques 0 Oct 12 10:12 jacques

-rw-r--r--. 1 jacques root 0 Oct 12 10:12 libWedgeit.so.1.2.3

注意事项

  • 记得查看题目中所要求存放的目录是否存在 ,不存在需要mkdir创建一个。
  • 本题考点 linux 命令: -exec 的使用 ,最后一定记得\

查找字符串

查找文件 /usr/share/xml/iso-codes/iso_639_3.xml 中包含字符串 ng 的所有行。将所有这些行的副本按原始顺序放在文件 /root/list 中。 /root/list 不得包含空行,且所有行必须是/usr/share/xml/iso-codes/iso_639_3.xml 中原始行的确切副本。

解题

BASH
[root@mars ~]# grep ng /usr/share/xml/iso-codes/iso_639_3.xml |grep -v '^$' \>/root/list

[root@mars ~]# cat list |wc

2289 5100 67565

注意事项

  • 题目中要求不得包含空行,所以必须跟上管道符 然后grep -v '^$'

创建存档

创建一个名为 /root/backup.tar.gztar 存档,其应包含 /usr/localtar 存档,其应包含

/usr/local 的内容。该 tar 存档必须使用 gzip 进行压缩。

解题

BASH
[root@mars ~]# tar zcvf /root/backup.tar.gz /usr/local/

[root@mars ~]# file backup.tar.gz

backup.tar.gz: gzip compressed data, last modified: Sun Nov 27 01:53:30 2022,

from Unix, original size 40960