EX200题库及分析(RHCSA)
- 操作系统
- 2022-12-17
- 38热度
- 0评论
考试说明
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/BaseOS 和 http://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/BaseOS 和 http://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