红帽RHCSA学习总结
考试信息
考试时间:3小时
满分:300分
及格分:210分
携带物品:身份证,签字笔(考试会发)
做题注意:
如果是服务,都设置下开机启动systemctl enable xxx
。 同时设置开启防火墙。 考试是在/etc/selinuxconfig
为enforce下进行的,使用命令getenforce
可查询状态。
Linux命令如果不存在,使用yum whatprovides */semanage
,semanage可替换成其他命令。在查询结果中找到*.noarch的包,在使用yum install *.noarch -y
。
所有编写的脚本都设置x执行权限。
做完题目后重启机器检查。
网络设置
- 主机名:node1.domain250.example.com
查看现在的主机名:hostname
修改主机名: hostnamectl set-hostname node1.domain250.example.com
验证主机名:hostname
此题还可以通过编辑
*/etc/hostname*
来配置,需要重启才能生效
- IP 地址:172.25.250.100
方法一:
查看现在IP地址:ifconfig
,记下网卡名称比如:eth0
修改IP地址:nmtui-edit
,删除刚才的网卡名称eth0
,再点击Add按钮添加一个新的连接,选择Ethernet, Profile name和Device填入对应的网卡名称eth0
,再IPV4 CONFIGURATION将Automatic修改为Manual,然后点击Show,在ADddresses填入172.25.250.100/24
,Gateway,DNS servers依次配置,最后点击OK并退出。
验证IP地址:ifconfig
注意新增无需刷新生效,如果是新修改则需要
*nmcli device reapply eth0*
刷新生效
方法二:
查看网络设置信息:nmcli connection show
设置网络:nmcli connection eth0 ipv4.address 172.25.250.100/24 ipv4.getway 172.25.250.254 ipv4.dns 172.25.250.254 ipv4.method manual
重启生效:nmcli connection up eth0
方法三:
通过vim编辑配置文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0
1 |
|
需要刷新网络(考试环境无法刷新)或重启生效
- 子网掩码:255.255.255.0
无需配置,默认。
验证:ifconfig
- 网关:172.25.250.254
同IP配置。
验证:ifconfig
- DNS服务器:172.25.250.254
同IP配置。
验证:netstat -nr
或route -n
或nslookup node1
配置您的系统以使用默认存储库
YUM 存储库已可以从 http://foundation0.ilt.example.com/dvd/BaseOS 和 http://foundation0.ilt.example.com/dvd/AppStream 使用配置您的系统,以将这些位置用作默认存储库
进入/etc/yum.repos.d
,任意起名一个文件,以.repo
结尾,在文件中增加以下配置内容:
1 |
|
检查:
1 |
|
能在命令行输出中看到配置的两个仓库地址即配置成功。
可以使用
*yum list all*
来校验仓库地址是否有配错
调试 SELinux
非标准端口 82 上运行的 Web 服务器在提供内容时遇到问题。根据需要调试并解决问题,使其满足以下条件:
- 系统上的 Web 服务器能够提供 /var/www/html 中所有现有的 HTML 文件(注:不要删除或以其他方式改动现有的文件内容)
- Web 服务器在端口 82 上提供此内容
- Web 服务器在系统启动时自动启动
82端口启动失败,发现是semanage中并没有加入http的82端口
1 |
|
添加82端口:
1 |
|
如果配置错了,可以使用修改命令:
1 |
|
semanager可以参考
grep semanage /etc/ssh/sshd_config
#semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
开启访问墙端口放行:
1 |
|
查看httpd端口
*vim /etc/httpd/conf/httpd.conf*
*
检查httpd服务状态:*systemctl status httpd*
启动httpd服务:*systemctl start httpd*
重启httpd服务:*systemctl restart httpd*
开启启动httpd:**systemctl enable httpd*
验证:
1 |
|
在http里面查看到82端口即可,同时curl访问文件有返回内容curl 127.0.0.1:82/file
额外的练习: 以下内容考试不需要做:
查看静态资源文件下的file1文件权限:
1 |
|
修改file1的文件权限同file2和file3:
1 |
|
创建用户帐户
创建下列用户、组和组成员资格:
- 名为 sysmgrs 的组
1 |
|
验证:
1 |
|
- 用户 natasha ,作为次要组从属于 sysmgrs
1 |
|
验证:
1 |
|
- 用户 harry ,作为次要组还从属于 sysmgrs
1 |
|
验证:
1 |
|
- 用户 sarah ,无权访问系统上的交互式 shell 且不是 sysmgrs 的成员
1 |
|
非交互式shell可以是
*/bin/false*
或*/sbin/nologin*
验证:
sarah无法使登入ssh或者查看shell: grep sarah /etc/passed
- natasha 、 harry 和 sarah 的密码应当都是 flectrag
1 |
|
验证:
natasha和harry可以使用密码登入ssh
配置 cron 作业
配置 cron 作业,该作业每隔 2 分钟运行并执行以下命令:
logger “EX200 in progress”,以用户 natasha 身份运行
1 |
|
验证:
1 |
|
创建协作目录
创建具有以下特征的协作目录 /home/managers :
- /home/managers 的组用权是 sysmgrs
1 |
|
- 目录应当可被 sysmgrs 的成员读取、写入和访问,但任何其他用户不具这些权限。(当然,root 用户有权访问系统上的所有文件和目录)
1 |
|
- /home/managers 中创建的文件自动将组所有权设置到 sysmgrs 组
1 |
|
验证:
1 |
|
去/home/managers
中创建文件,查看文件属性,确认后删除该文件。
配置 NTP
配置您的系统,使其成为 materials.example.com 的 NTP 客户端。(注:materials.example.com 是 classroom.example.com 的 DNS 别名)
1 |
|
验证:
1 |
|
配置 autofs
配置 autofs ,以按照如下所述自动挂载远程用户的主目录:
- materials.example.com ( 172.25.254.254 ) NFS 导出 /rhome 到您的系统。此文件系统包含为用户 remoteuser1 预配置的主目录
- remoteuser1 的主目录是 materials.example.com:/rhome/remoteuser1
- remoteuser1 的主目录应自动挂载到本地 /rhome 下的 /rhome/remoteuser1
- 主目录必须可供其用户写入
- remoteuser1 的密码是 flectrag
1 |
|
注意/rhome/remoteuser1 如果有多级目录如/rhome/b/c/remoteuser1,则需要在rhcsa.autofs配置多级/rhome/a/b。
重启配置:
1 |
|
开机启动:
1 |
|
验证:su - remoteuser1
或者cd /rhome/remoteuse1
配置 /var/tmp/fstab 权限
将文件 /etc/fstab 复制到 /var/tmp/fstab 。配置 /var/tmp/fstab 的权限以满足如下条件:
1 |
|
- 文件 /var/tmp/fstab 自 root 用户所有
无需修改 - 文件 /var/tmp/fstab 属于组 root
无需修改 - 文件 /var/tmp/fstab 应不能被任何人执行
无需修改 - 用户 natasha 能够读取和写入 /var/tmp/fstab
setfacl -m u:natasha:rw /var/tmp/fstab
- 用户 harry 无法写入或读取 /var/tmp/fstab
setfacl -m u:harry:- /var/tmp/fstab
- 所有其他用户(当前或未来)能够读取 /var/tmp/fstab
无需修改
验证:
1 |
|
查看帮助里面的例子:
*man setfacl |grep -A8 -i example*
配置用户帐号
配置用户 manalo ,其用户 ID 为 3533。此用户的密码应当为 flectrag。
1 |
|
验证:
查看uid:id manalo
验证密码:ssh manalo @localhost
或者使用远程执行ssh命令验证:ssh manalo@localhost id
查找文件
查找当 jacques 所有的所有文件并将其副本放入 /root/findfiles 目录。
1 |
|
验证:
1 |
|
找出/etc目录下大小超过5MB的文件,并将其副本放入 /root/findfiles 目录。
1 |
|
验证:
1 |
|
查找字符串
查找文件 /usr/share/xml/iso-codes/iso_639_3.xml 中包含字符串 ng 的所有行。将所有这些行的副本按原始顺序放在文件 /root/list 中。 /root/list 不得包含空行,且所有行必须是 /usr/share/xml/iso-codes/iso_639_3.xml 中原始行的确切副本。
1 |
|
验证:
1 |
|
创建存档
创建一个名为 /root/backup.tar.gz 的 tar 存档,其应包含 /usr/local 的 tar 存档,其应包含 /usr/local 的内容。该 tar 存档必须使用 gzip 进行压缩。
1 |
|
验证:
1 |
|
gzip压缩或bzip2压缩查阅参数
*man tar |egrep 'gzip|bzip2'*
sudo提权
配置sudo提权,允许admins组的成员可以以root身份执行命令,且不需要输入密码。
1 |
|
密码过期
设置新建用户的密码20天过期。
1 |
|
配置容器使其自动启动
利用注册服务器上的 rsyslog 镜像,创建一个名为 logserver 的容器 这两道容器题目需要结合来做,根据步骤来做题。
- 面向 wallah 用户,配置一个 systemd 服务
1 |
|
- 该服务命名为 container-logserver ,并在系统重启时自动启动,无需干预
1 |
|
注意题目描述服务命名为 container-logserver,这里创建时不需要额外加container,直接使用logserver创建后会自动加上。
验证:
1 |
|
如果重新生成了systemc服务,并且是同名的。则使用
*systemctl --user daemon-reload*
刷新生效
为容器配置持久存储
通过以下方式扩展上一个任务的服务
- 配置主机系统的 journald 日志以在系统重启后保留数据,并重新启动日志记录服务
1 |
|
- 将主机 /var/log/journal目录下任何以 *.journal 的文件复制到 /home/wallah/container_logfile 中
1 |
|
- 将服务配置为在启动时自动将 /home/wallah/container_logfile 挂载到容器中的 /var/log/journal 下
1 |
|
登入时提示错误Error: error authenticating creds for “registry.domain250.example.com”: error pinging docker registry registry.domain250.example.com: Get https://registry.domain250.example.com/v2/: x509: certificate has expired or is not yet valid,解决思路:
*man podman login |grep -A8 certificates*
验证:
1 |
|
设置 root 密码
将 node2 的 root 密码设置为 flectrag 。您需要获得系统访问权限才能进行此操作。 这道题是在不知道node2密码的前提下设置root密码。
关机,开机(使用重启时来不及打开控制台就进入系统了)。在第一个选项中输入e,进入编辑模式,在Linux开头的那行ctrl+e,进入末尾,空格,输入rd.break
,然后按ctrl+x
,等待进入switch_root终端界面后,在终端输入命令:
1 |
|
预先创建2G的分区/dev/vdb1,并用于创建卷组testvg
提示: lvm结构 从下到上 pp pv vg lg
1 |
|
创建大小为200M的逻辑卷/dev/testvg/vo,格式化为xfs文件系统,并挂载在/mnt/vo上
1 |
|
设置逻辑卷大小
将逻辑卷 vo 及其文件系统的大小调整到 230 MiB。确保文件系统内容保持不变。注:分区大小很少与请求的大小完全相同,因此可以接受范围为 217 MiB 到 243 MiB 的大小。
1 |
|
注意:
*lvextend -L 230M /dev/mapper/myvol-vo*
和*resize2fs /dev/mapper/myvol-vo*
可以合并为一步*lvextend -L 230M -r /dev/mapper/myvol-vo*
添加交换分区
向您的系统添加一个额外的交换分区 756MiB 。交换分区应在系统启动时自动挂载。不要删除或以任何方式改动系统上的任何现有交换分区。
1 |
|
创建逻辑卷
根据如下要求,创建新的逻辑卷:
- 逻辑卷取名为 qa ,属于 qagroup 卷组,大小为 60 个扩展块
- qagroup 卷组中逻辑卷的扩展块大小应当为 16 MiB
- 使用 ext3 文件系统格式化新逻辑卷。该逻辑卷应在系统启动时自动挂载到 /mnt/qa 下
1 |
|
创建 VDO 卷
根据如下要求,创建新的 VDO 卷:
- 使用未分区的磁盘
- 该卷的名称为 vdough
- 该卷的逻辑大小为 50G
- 该卷使用 xfs 文件系统格式化
- 该卷(在系统启动时)挂载到 /vbread 下
1 |
|
利用帮助:
*man vdo |grep create*
和*man vdo |grep defaults*
配置系统调优
为您的系统选择建议的 tuned 配置集并将它设为默认设置。
1 |
|
删除逻辑卷
- 卸载文件系统,并删除/etc/fstab中的记录
1 |
|
- 删除逻辑卷
1 |
|
- 删除卷组
1 |
|
- 删除物理卷
1 |
|
查找拷贝
在/usr/bin 目录下创建一个 repwis 脚本,查找/usr 目录大小范围在 10–50K 之间并且组 id 不为 root 的文件且拥有 sgid 的文件,把查到的文件结果拷贝到/root/myfiles文件夹内。
1 |
|
欢迎语
登录到普通用户后提示一句欢迎语’hello word !’或者用户在登陆前显示欢迎语提示。
1 |
|
查找文件
在/usr/bin 目录下创建一个 repwis 脚本,查找/usr/目录下小于 10M 并且组 id 不为 root 的文 件,把查找到的文件放在/root/myfiles 文件夹内
1 |
|
查找文件
在/usr/bin 目录下创建一个 repwis 脚本,查找/usr/ 具有粘贴位是 4(u 的位置上有 s 位), 其他 ugo 是什么权限, 不管。且组 id 不为 root 的文件,把查找到的文件放在/root/myfiles文件夹内
1 |
|
权限设置
对 diff 用户设置默认权限:
- 用户新创建的文件权限都为:444 r — r — r —
- 同一个用户下新创建的目录权限为:554 dr-xr-xr —
如果既要求了文件的默认权限 xxx,也要求了目录的默认权限 yyy。
则 umask 的值以目录来算,即 umask=777-yyy,不用管文件。
比如目录的默认权限为 554,文件的默认权限为 444。
则 umask 可以设置为 777–554=223,不用管文件的默认权限了。
如果题目只要求设置文件的默认权限 xxx,并没有说目录的默认权限是什么。
则 umask=666-xxx
算出来 umask 值为 zzz 之后。
用户 vim ~用户/.bash_profile,添加 umask zzz 这里 zzz 是你算出来的数字。
打印输出
在节点上使用 bob 用户写一个脚本 rhcsa,然后执行 rhcsa,执行后输出it is ok
1 |
|