EX200题库及分析(RHCSA)

考试说明

1、上午的考试,考试代码 EX200,考试满分300分,210分通过,考试时间3小时,熟练工1个小时就能做完;
2、带身份证、一支笔提前半小时到达考场
3、进考场随便找一台机器坐下,机器为开机状态,为考试界面,需要填写相关的信息-姓名(Zhu Chun)、邮箱(zhuchun92@163.com);--此信息下午的考试也要填,需要保持一致;
4、考试提供一台物理机,安装的RHEL8系统,不提供 root及密码,用的是普通用户;
5、物理机RHEL8里跑了个KVM,运行了两台虚拟机叫 node1、node2,考试时候通过物理机ssh到 node1、node2上来做题;node1会给root用户及密码。
6、不要修改物理机(宿主机)
7、通过 Activity >> View Exam 来打开浏览考题信息
8、通过 Activity >> VM Control 来打开 node1,node2,也可进入console
9、考题全部做完后,重启 node1、node2 进行检查,如果重启后丢失做的题,会扣分,扣多导致考试不通过

考题

在 node1.domain250.example.com 上执行以下任务

第一题:配置网络设置

将 node1 配置为具有以下网络配置:

  • 主机名:node1.domain250.example.com
  • IP 地址:172.25.250.100
  • 子网掩码:255.255.255.0
  • 网关:172.25.250.254
  • DNS服务器:172.25.250.254

解答

[root@clear ~]# hostnamectl set-hostname node1.domain250.example.com
[root@clear ~]# nmtui-edit
# 删除所有网卡,再新增一个 eth0 的网卡,网卡内容配置以上信息即可,此种删除再新增的网卡,会立即生效。
# 如果修改网卡信息,则不会立即生效,需要执行: nmctl devide replay eth0(网卡名)

第二题:配置默认存储库(yum源)

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

YUM 存储库已可以从 http://foundation0.ilt.example.com/dvd/BaseOShttp://foundation0.ilt.example.com/dvd/AppStream 使用配置您的系统,以将这些位置用作默认存储库。

解答

[root@node1 ~]# vim /etc/yum.repos.d/aa.repo
l=http://foundation0.ilt.example.com/dvd/BaseOS
enabled=1
gpgcheck=0

[bb]
name=bb
baseurl=http://foundation0.ilt.example.com/dvd/AppStream
enabled=1
gpgcheck=0

[root@node1 ~]# yum clean all && yum makecache

第三题:调试SELinux

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

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

解答

# 操作前先确认 SELinux 的模式为 enforcing 模式
[root@node1 ~]# cat /etc/selinux/config  |grep SELINUX
SELINUX=enforcing

# 先看系统有没有安装 semanage,没安装的话要安装一下
[root@node1 ~]# yum whatprovides */semanage
Last metadata expiration check: 0:24:58 ago on Tue 13 Dec 2022 04:10:13 PM EST.
policycoreutils-python-utils-2.9-9.el8.noarch : SELinux policy core python utilities
Repo        : @System
Matched from:
Filename    : /usr/sbin/semanage
Filename    : /usr/share/bash-completion/completions/semanage

policycoreutils-python-utils-2.9-9.el8.noarch : SELinux policy core python utilities
Repo        : aa
Matched from:
Filename    : /usr/sbin/semanage
Filename    : /usr/share/bash-completion/completions/semanage

# 然后看httpd有没有安装
[root@node1 ~]# yum install -y httpd
Last metadata expiration check: 0:25:33 ago on Tue 13 Dec 2022 04:10:13 PM EST.
Package httpd-2.4.37-21.module+el8.2.0+5008+cca404a3.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

# 检查下httpd服务的端口,如果不是 82 要改成 82
[root@node1 ~]# cat /etc/httpd/conf/httpd.conf |grep Listen
# Listen: Allows you to bind Apache to specific IP addresses and/or
# Change this to Listen on specific IP addresses as shown below to 
#Listen 12.34.56.78:80
Listen 82

# 查看端口的上下文为 http_port_t
[root@node1 ~]# semanage port -l |grep '\b80\b'
http_port_t                    tcp      82, 80, 81, 443, 488, 8008, 8009, 8443, 9000

# 给http协议82端口开放权限,这个命令格式,可以从 /etc/ssh/sshd_config 文件里找到,上下文为 http_port_t,如果第一次执行这个命令,有配置写错了但是已经执行,则通过 -a 替换为 -m 执行新的命令进行修改。
[root@node1 ~]# semanage port -a -t http_port_t -p tcp 82

# 开启httpd服务,并设置开机启动
[root@node1 ~]# systemctl restart httpd && systemctl enable httpd

# 防火墙给 82 端口开放权限
[root@node1 ~]# firewall-cmd --add-port=82/tcp --permanent && firewall-cmd --reload

第四题:创建用户账户

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

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

解答

[root@node1 ~]# groupadd sysmgrs
[root@node1 ~]# useradd -G sysmgrs natasha 
[root@node1 ~]# useradd -G sysmgrs harry
[root@node1 ~]# useradd -s /sbin/nologin sarah

[root@node1 ~]# echo flectrag |passwd --stdin natasha
Changing password for user natasha.
passwd: all authentication tokens updated successfully.
[root@node1 ~]# echo flectrag |passwd --stdin harry
Changing password for user harry.
passwd: all authentication tokens updated successfully.
[root@node1 ~]# echo flectrag |passwd --stdin sarah
Changing password for user sarah.
passwd: all authentication tokens updated successfully.

第五题:配置 cron作业

配置 cron 作业,该作业每隔 2 分钟运行并执行以下命令:

  • logger "EX200 in progress",以用户 natasha 身份运行

解答

# 分    时      天      月      周      命令
[root@node1 ~]# crontab -u natasha -e
*/2     *       *       *       *       logger "EX200 in progress"

第六题:创建协作目录

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

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

解答

# 改所属组,这两个命令都可以
[root@node1 ~]# chown :sysmgrs -R /home/managers/
[root@node1 ~]# chgrp sysmgrs /home/managers/

[root@node1 ~]# chmod g+rwx,o-rwx /home/managers/

[root@node1 ~]# chmod g+s /home/managers/

第七题:配置 NTP

配置 NTP:

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

解答

[root@node1 ~]# vim /etc/chrony.conf
server _gateway iburst
#改为
server materials.example.com iburst

[root@node1 ~]# systemctl enable chronyd && systemctl restart chronyd

第八题:配置 autofs

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

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

解答

[root@node1 ~]# yum install -y autofs
[root@node1 ~]# vim /etc/auto.master.d/aa.autofs 
/rhome      /etc/auto.aa
[root@node1 ~]# vim /etc/auto.aa 
remoteuser1 -fstype=nfs,rw  materials.example.com:/rhome/remoteuser1
[root@node1 ~]# systemctl restart autofs && systemctl enable autofs
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
[root@node1 ~]# su - remoteuser1
[remoteuser1@node1 ~]$ pwd
/rhome/remoteuser1

第九题:配置 /var/tmp/fstab 权限

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

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

解答

[root@node1 ~]# cp /etc/fstab /var/tmp/fstab
[root@node1 ~]# ll /var/tmp/fstab 
-rw-r--r--. 1 root root 534 Dec 14 16:09 /var/tmp/fstab
[root@node1 ~]# setfacl -m u:natasha:rw- /var/tmp/fstab
[root@node1 ~]# setfacl -m u:harry:--- /var/tmp/fstab

第十题:配置用户帐户

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

解答

[root@node1 ~]# useradd manalo -u 3533
[root@node1 ~]# echo flectrag | passwd --stdin manalo

第十一题:查找文件

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

解答

[root@node1 ~]# mkdir findfiles
[root@node1 ~]# find / -user jacques -exec cp -a {} /root/findfiles \;
find: ‘/proc/2387/task/2387/fd/6’: No such file or directory
find: ‘/proc/2387/task/2387/fdinfo/6’: No such file or directory
find: ‘/proc/2387/fd/7’: No such file or directory
find: ‘/proc/2387/fdinfo/7’: No such file or directory
[root@node1 ~]# ll findfiles/
total 0
-rw-r--r--. 1 jacques jacques 0 Dec 14 16:25 gamelan
-rw-r--r--. 1 jacques jacques 0 Dec 14 16:25 jacques
-rw-r--r--. 1 jacques jacques 0 Dec 14 16:25 libWedgeit.so.1.2.3

第十二题:查找字符串

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

解答

[root@node1 ~]# grep ng /usr/share/xml/iso-codes/iso\_639\_3.xml > /root/list

第十三题:创建存档

创建一个名为 /root/backup.tar.gz 的 tar 存档,其应包含 /usr/local 的 tar 存档,其应包含 /usr/local 的内容。该 tar 存档必须使用 gzip 进行压缩。

解答

[root@node1 ~]# tar zcvf /root/backup.tar.gz /usr/local
[root@node1 ~]# ll backup.tar.gz 
-rw-r--r--. 1 root root 51200 Dec 14 16:31 backup.tar.gz
# 如果考试时候要求用 bzip2 来压缩的话,执行 tar jcvf /root/backup.tar.bz2 /usr/local

第十四题:配置容器使其自动启动

利用注册服务器上的 rsyslog 镜像,创建一个名为 logserver 的容器:

  • 面向 wallah 用户,配置一个 systemd 服务
  • 该服务命名为 container-logserver ,并在系统重启时自动启动,无需干预

解答

[root@node1 ~]# echo  flectrag | passwd --stdin wallah

[root@node1 ~]# ssh wallah@node1 
[wallah@node1 ~]$ podman login -u admin registry.domain250.example.com -p redhat321
[wallah@node1 ~]$ podman pull rhel8/rsyslog
[wallah@node1 ~]$ podman run -d --name logserver -v /home/wallah/container_logfile:/var/log/journal:Z registry.domain250.example.com/rhel8/rsyslog
4e713eb209b7244945688d52f3a762e52e94314312f6f61b0704aeeec5ef0c9e
[wallah@node1 ~]$ podman stop logserver 

[wallah@node1 ~]$ loginctl enable-linger 
[wallah@node1 ~]$ loginctl show-user wallah
[wallah@node1 ~]$ mkdir -p ~/.config/systemd/user ; cd ~/.config/systemd/user
[wallah@node1 user]$ podman generate systemd --name logserver -f
[wallah@node1 user]$ systemctl --user enable container-logserver.service --now
[wallah@node1 user]$ systemctl --user is-enabled container-logserver.service 
enabled

第十五题:为容器配置持久存储

通过以下方式扩展上一个任务的服务:

  • 配置主机系统的 journald 日志以在系统重启后保留数据,并重新启动日志记录服务
  • 将主机 /var/log/journal目录下任何以 *.journal 的文件复制到 /home/wallah/container_logfile 中
  • 将服务配置为在启动时自动将 /home/wallah/container_logfile 挂载到容器中的 /var/log/journal 下

解答

[root@node1 ~]# ll -d /run/log/journal/
drwxr-sr-x. 4 root systemd-journal 80 Dec 15 14:06 /run/log/journal/
[root@node1 ~]# mkdir /var/log/journal
[root@node1 ~]# chown root:systemd-journal /var/log/journal
[root@node1 ~]# chmod 2755 /var/log/journal

Storage=persistent

[root@node1 ~]# systemctl restart systemd-journald

[root@node1 ~]# cp /var/log/journal/*/*.journal /home/wallah/container_logfile/.
[root@node1 ~]# ll /home/wallah/container_logfile/
total 16384
-rw-r-----. 1 root root 8388608 Dec 15 14:26 system.journal
-rw-r-----. 1 root root 8388608 Dec 15 14:26 user-1005.journal
[root@node1 ~]# chown -R wallah:wallah ~wallah/

在 node2.domain250.example.com 上执行以下任务

第一题:设置 root 密码

将 node2 的 root 密码设置为 flectrag 。您需要获得系统访问权限才能进行此操作。

解答

1、reboot node2
2、在系统选择页面,选择第一个系统按 e,进入编辑页面,在Linux行最后加上 rd.beeak ,按 Ctrl+x
3、mount |grep sysroot,看权限是 ro还是rw,重新执行下 mount -o remount,rw /sysroot/
4、chroot /sysroot/
5、echo flectrag |passwd --stdin root
6、touch /.autorelabel
7、一路 exit
8、等重启后可以从宿主机 ssh root@node2 来验证密码

第二题:配置您的系统以使用默认存储库

YUM 存储库已可以从 http://foundation0.ilt.example.com/dvd/BaseOShttp://foundation0.ilt.example.com/dvd/AppStream 使用配置您的系统,以将这些位置用作默认存储库

解答

[root@node2 ~]# cat /etc/yum.repos.d/aa.repo 
[aa]
name=aa
baseurl=http://foundation0.ilt.example.com/dvd/BaseOS
enabled=1
gpgcheck=0

[bb]
name=bb
baseurl=http://foundation0.ilt.example.com/dvd/AppStream
enabled=1
gpgcheck=0
[root@node2 ~]# yum clean all && yum makecache

第三题:调整逻辑卷大小

将逻辑卷 vo 及其文件系统的大小调整到 230 MiB。确保文件系统内容保持不变。注:分区大小很少与请求的大小完全相同,因此可以接受范围为 217 MiB 到 243 MiB 的大小。

解答

[root@node2 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  vo   myvol  -wi-ao---- 184.00m                                                    
  swap vgroup -wi-ao---- 256.00m 
[root@node2 ~]# lvextend -r -L 230M /dev/myvol/vo
[root@node2 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  vo   myvol  -wi-ao---- 232.00m                                                    
  swap vgroup -wi-ao---- 256.00m                                                    
[root@node2 ~]# df -hT |grep vo
/dev/mapper/myvol-vo ext4      221M  2.1M  204M   1% /reports

第四题:添加交换分区

向您的系统添加一个额外的交换分区 756MiB 。交换分区应在系统启动时自动挂载。不要删除或以任何方式改动系统上的任何现有交换分区。

解答

# 分析需要在哪个磁盘进行操作,这里选择的是 vdb
[root@node2 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda             252:0    0   10G  0 disk 
├─vda1          252:1    0    1M  0 part 
├─vda2          252:2    0  100M  0 part /boot/efi
└─vda3          252:3    0  9.9G  0 part /
vdb             252:16   0    4G  0 disk 
├─vdb1          252:17   0  510M  0 part 
│ └─myvol-vo    253:1    0  232M  0 lvm  /reports
└─vdb2          252:18   0  512M  0 part 
  └─vgroup-swap 253:0    0  256M  0 lvm  [SWAP]
vdc             252:32   0   10G  0 disk 

[root@node2 ~]# fdisk /dev/vdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 
First sector (2095106-8388607, default 2097152): 
Last sector, +sectors or +size{K,M,G,T,P} (2097152-8388607, default 8388607): +756M       

Created a new partition 3 of type 'Linux' and of size 756 MiB.

Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Command (m for help): p
Disk /dev/vdb: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x926e4bfb

Device     Boot   Start     End Sectors  Size Id Type
/dev/vdb1          2048 1046528 1044481  510M 83 Linux
/dev/vdb2       1046529 2095105 1048577  512M 83 Linux
/dev/vdb3       2097152 3645439 1548288  756M 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered.
Syncing disks.

[root@node2 ~]# mkswap /dev/vdb3 
Setting up swapspace version 1, size = 756 MiB (792719360 bytes)
no label, UUID=de17b868-2fd5-4ca6-baf2-8d28f762e1c9

[root@node2 ~]# vim /etc/fstab 
/dev/vdb3       none    swap    defaults        0       0
[root@node2 ~]# swapon -a
[root@node2 ~]# swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-0                               partition   262140  0   -2
/dev/vdb3                               partition   774140  0   -3

第五题:创建逻辑卷

根据如下要求,创建新的逻辑卷:

  • 逻辑卷取名为 qa ,属于 qagroup 卷组,大小为 60 个扩展块
  • qagroup 卷组中逻辑卷的扩展块大小应当为 16 MiB
  • 使用 ext3 文件系统格式化新逻辑卷。该逻辑卷应在系统启动时自动挂载到 /mnt/qa 下

解答

# 60个扩展块,每个大小为 16MiB,则需要960MiB,我们给个1.1G的分区足够,还是用上面的 /dev/vdb
[root@node2 ~]# fdisk /dev/vdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): p

Selected partition 4
First sector (2095106-8388607, default 3645440): 
Last sector, +sectors or +size{K,M,G,T,P} (3645440-8388607, default 8388607): +1.1G

Created a new partition 4 of type 'Linux' and of size 1.1 GiB.

Command (m for help): p
Disk /dev/vdb: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x926e4bfb

Device     Boot   Start     End Sectors  Size Id Type
/dev/vdb1          2048 1046528 1044481  510M 83 Linux
/dev/vdb2       1046529 2095105 1048577  512M 83 Linux
/dev/vdb3       2097152 3645439 1548288  756M 82 Linux swap / Solaris
/dev/vdb4       3645440 5947391 2301952  1.1G 83 Linux

Command (m for help): w
The partition table has been altered.
Syncing disks.

# 逻辑卷取名为 qa ,属于 qagroup 卷组,大小为 60 个扩展块
# 创建 pv
[root@node2 ~]# pvcreate /dev/vdb4 
  Physical volume "/dev/vdb4" successfully created.
# 创建 vg
[root@node2 ~]# vgcreate qagroup -s 16 /dev/vdb4 
  Volume group "qagroup" successfully created
[root@node2 ~]# lvcreate -n qa -l 60 qagroup
  Logical volume "qa" created.

# 使用 ext3 文件系统格式化新逻辑卷。该逻辑卷应在系统启动时自动挂载到 /mnt/qa 下
[root@node2 ~]# mkfs.ext3 /dev/qagroup/qa
[root@node2 ~]# mkdir /mnt/qa
[root@node2 ~]# vim /etc/fstab
/dev/qagroup/qa /mnt/qa ext3    defaults        0       0
[root@node2 ~]# mount -a

第六题:创建 VDO 卷

根据如下要求,创建新的 VDO 卷:

  • 使用未分区的磁盘
  • 该卷的名称为 vdough
  • 该卷的逻辑大小为 50G
  • 该卷使用 xfs 文件系统格式化
  • 该卷(在系统启动时)挂载到 /vbread 下

解答

# 经过分析,用 vdc 操作
[root@node2 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda             252:0    0   10G  0 disk 
├─vda1          252:1    0    1M  0 part 
├─vda2          252:2    0  100M  0 part /boot/efi
└─vda3          252:3    0  9.9G  0 part /
vdb             252:16   0    4G  0 disk 
├─vdb1          252:17   0  510M  0 part 
│ └─myvol-vo    253:1    0  232M  0 lvm  /reports
├─vdb2          252:18   0  512M  0 part 
│ └─vgroup-swap 253:0    0  256M  0 lvm  [SWAP]
├─vdb3          252:19   0  756M  0 part [SWAP]
└─vdb4          252:20   0  1.1G  0 part 
  └─qagroup-qa  253:2    0  960M  0 lvm  /mnt/qa
vdc             252:32   0   10G  0 disk 

# 先把相关的包安装起来
[root@node2 ~]# yum install vdo kmod-kvdo -y
[root@node2 ~]# systemctl start vdo && systemctl enable vdo
[root@node2 ~]# vdo create -n vdough --device /dev/vdc --vdoLogicalSize 50G
Creating VDO vdough
      The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
      It can grow to address at most 16 TB of physical storage in 8192 slabs.
      If a larger maximum size might be needed, use bigger slabs.
Starting VDO vdough
Starting compression on VDO vdough
VDO instance 1 volume is ready at /dev/mapper/vdough
# -K 快速格式化
[root@node2 ~]# mkfs.xfs -K /dev/mapper/vdough 

# 该卷(在系统启动时)挂载到 /vbread 下,_netdev一定要写,否则重启会起不来
[root@node2 ~]# mkdir /vbread
[root@node2 ~]# vim /etc/fstab
/dev/mapper/vdough  /vbread xfs defaults,_netdev    0   0

第七题:配置系统调优

为您的系统选择建议的 tuned 配置集并将它设为默认设置。

解答

[root@node2 ~]# tuned-adm recommend 
virtual-guest
[root@node2 ~]# tuned-adm profile virtual-guest

附加题

第一题

在 /usr/bin 目录下创建一个 repwis脚本,找到 /usr 目录大小范围在 10-50K之间并且组id不为 root 的文件,且拥有 sgid 的文件,把查找到的文件结果拷贝到 文件夹 /root/myfiles

解答

[root@node1 ~]# cat /usr/bin/rewis 
#!/bin/bash
find /usr \( -size +10k -size -50k \) -a \( ! -group root \) -a \( -perm /2000 \) -exec cp -a {} /root/myfiles \;

[root@node1 ~]# mkdir /root/myfiles
[root@node1 ~]# chmod +x /usr/bin/rewis 
[root@node1 ~]# /usr/bin/rewis
[root@node1 ~]# ll /root/myfiles/ -h
total 88K
-rwx--s--x. 1 root slocate 47K Aug 12  2018 locate
-rwx--s--x. 1 root utmp    13K Aug 12  2018 utempter
-rwxr-sr-x. 1 root tty     21K Dec 17  2019 write

第二题

登录到普通用户后提示一句欢迎语“hello world!”或者用户在登录前显示欢迎语提示

解答

# 远程登录后提示欢迎语,可以通过ssh登录系统检查
[root@node1 ~]# echo 'hello world!' >> /etc/motd
# 登录前的提示,可以通过底层登录系统检查
[root@node1 ~]# echo 'hello world!' >> /etc/issue

第三题

对 diff 用户设置默认权限:

1、用户新创建的文件权限都为 444: r--r--r--

2、同一个用户下新创建的目录权限为 554:dr-xr-xr--

解答:

# 如要求的文件的默认权限,也要求了目录的默认权限,则 umask 的值以目录来计算,不用管文件;
# 如仅要求了文件的默认权限,没有要求目录的权限,则 umask 值以文件权限来计算;
# 文件拥有的最大默认权限是 666,目录拥有的最大权限是 777
# 算出来的 umask 值,在 ~/.bash_profile 中设置
# 所以此题,文件 umask=666-444=222 ,目录umask=777-554=223,最终 umask=223
[root@node1 ~]# useradd diff
[root@node1 ~]# su - diff
[diff@node1 ~]$ umask
0002
[diff@node1 ~]$ vim ~/.bash_profile 
[diff@node1 ~]$ cat ~/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
umask 223
# User specific environment and startup programs
[diff@node1 ~]$ source ~/.bash_profile 
[diff@node1 ~]$ umask
0223

第四题

在node1,bob 用户,执行 rhcsa 脚本,则输出 ‘it's ok!’

解答:

[root@node1 ~]# useradd bob
[root@node1 ~]# su - bob
[bob@node1 ~]$ echo $PATH
/home/bob/.local/bin:/home/bob/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
[bob@node1 ~]$ mkdir ~/bin
[bob@node1 ~]$ vim ~/bin/rhcsa
[bob@node1 ~]$ cat ~/bin/rhcsa 
#!/bin/bash
echo "it is ok"
[bob@node1 ~]$ chmod +x ~/bin/rhcsa 
[bob@node1 ~]$ rhcsa 
it is ok
[bob@node1 ~]$

第五题

要求:使用适当的配置使新建的用户 20 天过期

解答:

[root@node1 ~]# vim /etc/login.defs 
PASS_MAX_DAYS   20

第六题

有个已分配的用户组 bob ,要求获得 sudo 的相关权限,能在配置一些管理命令的时候不需要输入密码

解答

[root@node1 ~]# vim /etc/sudoers
[root@node1 ~]# vim /etc/sudoers.d/bob
%bob    ALL=(ALL)   NOPASSWD:   ALL