环境准备:
1、修改root用户密码:
重启虚拟机,在开机的时候按 E 键进入 grub2 的引导菜单,找到 linux16 这一行,把 ro 后的所有字符全部删除,然后在 ro 字符后输入
rd.break ,然后再按 ctrl + x 引导系统,获得一个命令行后,如果找不到命令时,按回车键获得命令行
# 输入以下命令:
switch_root: /# mount -o remount,rw /sysroot
switch_root: /# chroot /sysroot
# 修改成题目要求的密码
sh-4.2# echo flectrag|passwd --stdin root
sh-4.2# touch /.autorelabel
sh-4.2# exit
switch_root: /# exit
2、登陆系统,进入图形化界面
# 等待系统出现 login 界面后,输入用户名 root 及密码
# 在提示符后输入 startx 进入图形界面(如果不想进入图型界面也可以,不影响做题)
localhost login: root
password: [flectrag]
$ startx
3、修改网络配置和主机名
$ nmcli connection modify "System eth0" ipv4.addresses "172.25.0.11/24 172.25.0.254" ipv4.dns 172.25.254.254 ipv4.method manual
$ nmcli connection up "System eth0"
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
...
$ hostnamectl set-hostname server0.example.com
$ exit
开始答题:
# 建议使用终端远程连接到虚拟机
[kiosk@foundation0 ~]$
ssh root@172.125.0.11 -X
1、配置 SELinux
SELinux 必须运行在 Enforcing 模式。
$ vim /etc/selinux/config
$ grep -v ^# /etc/selinux/config
SELINUX=enforcing
SELINUXTYPE=targeted
### 修改当前模式为enforcing
$ setenforcing 1
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
2、为您的系统配置一个默认的软件仓库
YUM的软件 http://classroom.example.com/content/rhel7.0/x86_64/dvd/ 将此配置为您的系统的默认软件仓库。
$ vim /etc/yum.repos.d/rhel.repo
$ cat /etc/yum.repos.d/rhel.repo
[rhcsa]
name = EX200
gpgcheck = 0
baseurl = http://classroom.example.com/content/rhel7.0/x86_64/dvd/
### 清空之前的软件仓库缓存
$ yum clean all
Loaded plugins: langpacks
Cleaning repos: rhcsa
Cleaning up everything
### 刷新软件仓库
$ yum repolist
3、调整逻辑卷的大小
将逻辑卷vo和其文件系统大小调整到 230M 。 要确保文件系统中的内容保持完整(这表示不能格式化)。
请注意:分区大小很少能够完全符合要求的大小,所以大小在217M 和 243M 之间都是可以接受的。
### 查看一下逻辑卷名称
$ lsblk
### 查看一下逻辑卷具体信息
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 xfs 10G 3.0G 7.1G 30% /
...
/dev/mapper/myvg-myvol ext4 47M 1.1M 42M 3% /mnt/my-data
### 查看一下逻辑卷大小,能否满足扩展大小
$ vgs /dev/myvg
### 调整逻辑卷vo和文件系统大小到230M
$ lvextend -L 230M /dev/myvg/myvol
$ resize2fs /dev/myvg/myvol
### 检查
$ df -Th
4、创建用户账户
创建下列用户,组,和组的成员关系:
一个名为 sysmgrs 的组;
一个名为 natasha 的用户,其属于 sysmgrs , 这个组是该用户的从属组;
一个名为 harry 的用户,属于 sysmgrs , 这个组是该用户的从属组;
一个名为 sarah 的用户,其在系统中没有可交互的 shell ,并且该用户不是 sysmgrs 组的成员;
用户 natasha , harry , sarah 的密码都要设置为 flectrag ;
$ groupadd sysmgrs
$ useradd -G sysmgrs natasha
$ useradd -G sysmgrs harry
$ useradd -s /sbin/nologin sarah
$ echo flectrag|passwd --stdin natasha
$ echo flectrag|passwd --stdin harry
$ echo flectrag|passwd --stdin sarah
5、配置文件 /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 进行读写操作;
$ cp /etc/fstab /var/tmp/fstab
$ setfacl -m u:natasha:rw,u:harry:---,o::rw /var/tmp/fstab
### 检查
$ getfacl /var/tmp/fstab
# file: var/tmp/fstab
# owner: root
# group: root
user::rw-
user:natasha:rw-
user:harry:---
group::r--
mask::rw-
other::rw-
6、配置一个 cron 任务
用户 natasha 必须配置一个定时执行任务,每天在本地时间 14:23 时执行命令 /bin/echo hiya
$ crontab -e -u natasha
#//分 时 天 月 周 [用户] 任务脚本
23 14 * * * /bin/echo hiya
### 检查
$ crontab -l -u natasha
23 14 * * * /bin/echo hiya
7、创建一个共享目录
创建一个工作目录 /home/managers ,特性如下:
/home/managers 目录的所有权是 sysmgrs ;
sysmgrs 组的成员对目录有读写和执行的权限。除此之外的其他所有用户没有任何权限(root用户能够访问系统中的所有文件和目录);
在 /home/managers 目录中创建的文件,其组所有权会自动设置为属于 sysmgrs 组;
$ mkdir /home/managers
$ chgrp sysmgrs /home/managers
$ chmod 2770 /home/managers
8、安装内核的升级
从 http://classroom.example.com/materials 升级正确的内核同时要满足下列要求:
当系统重新启动之后升级的内核要作为默认的内核;
原来的内核要被保留,并且仍然可以正常启动;
### 默认情况下,安装新内核之后,旧内核是保留的,并且是以新内核来启动的
$ rpm -ivh http://classroom.example.com/materials/kernel-3.10.0-123.1.2.el7.x86_64.rpm
### 重启系统
$ systemctl reboot
9、绑定到外部验证服务
系统 classroom.example.com 提供了一个LDAP验证服务。您的系统需要按照以下要求绑定到这个服务上:
验证服务器的基本 DN 是: dc=example, dc=com
账户信息和验证信息都是有 LDAP 提供;
连接需要使用证书进行加密,证书可以在下面的链接中下载:
http://classroom.example.com/pub/example-ca.crt
当正确完成配置后,用户 ldapuser0 应该能够登录到您的系统中,但是没有主目录。当您完成 autofs 的题目之后,才能生成主目录。
用户 ldapuser0 的密码是 password
$ yum -y install authconfig-gtk sssd
### 启动图形化界面配置
$ authconfig-gtk &
### LDAP Search Base DN : dc=example, dc=com
### LDAP Server : classroom.example.com
### ☑️ Use Tls to encrypt connections
点击 Download CA Certificate...
在弹窗 Certificate URL 框里输入 http://classroom.example.com/pub/example-ca.crt
点击 OK 按钮
### 点击 Apply 按钮,等待完成。
### 检查一下sssd服务
$ systemctl status sssd
10、配置 NTP
配置您的系统,让其作为一个 classroom.example.com 的 NTP 客户端;
$ yum -y install system-config-date
### 打开图形化配置界面
$ system-config-date &
### 在窗口 Date and Time 下:
☑️ Synchronize date and time over the network
### 把 NTP Servers 列表里的服务地址删掉;
然后点击 Add 按钮: 添加 classroom.example.com 地址。
注意:在框里空白处点一下,触发同步地址检查
最后点击 OK 按钮
### 检查
$ chronyc sources -v
11、配置 autofs
按照下述要求配置 autofs 用来自动挂载 LDAP 用户的主目录:
classroom.example.com(172.25.254.254)通过 NFS 版本 3 输出了 /home/guests 目录到您的系统。这个文件系统包含了用户 ldapuser0 的主目录,并且已经预先配置好了;
ldapuser0 用户主目录是 classroom.example.com:/home/guests/ldapuser0 ;
ldapuser0 的主目录应该挂在到本地的 /home/guests/ldapuser0 目录下;
用户对其主目录必须是可写的 ;
ldapuser0 用户的密码是 password ;
$ yum -y install autofs
### 设置开机启动
$ systemctl enable autofs
### 编写一级配置文件
$ vim /etc/auto.master
### 插入如下内容
/home/guests /etc/auto.ldap
### 以auto.misc为模板,一定要加 -a 因为有selinux的策略
$ cp -a /etc/auto.misc /etc/auto.ldap
$ vim /etc/auto.ldap
### 删除已有的 cd 行的内容,插入配置ldapuser0
ldapuser0 -fstype=nfs,v3,rw classroom.example.com:/home/guests/ldapuser0
### 启动服务
$ systemctl start autofs
### 连接ldapuser0用户,ssh 和 su - 都可以,因为在一台服务上。
$ ssh ldapuser0@server0.example.com
### 输入题目上的密码 password
### 然后输入pwd,查看能否列出自己的家目录
$ pwd
/home/guests/ldapuser0
### 检查是否加载上了
$ df -Th
...
classroom.example.com:/home/guests/ldapuser0 nfs 10G 3.4G 6.7G 34% /home/guests/ldapuser0
### 如果要查看版本
$ nfsstat -m
/home/guests/ldapuser0 from classroom.example.com:/home/guests/ldapuser0
Flags: rw,relatime,vers=3,resize=262144,...省略...
12、配置一个用户帐户
创建一个名为 king 的用户,用户ID 是 3533 。 密码是 flectrag 。
$ useradd -u 3533 king
$ echo flectrag|passwd --stdin king
13、在您的系统中添加一个大小为 756M 的swap分区
当您的系统启动时,swap 分区应该可以自动挂载。不要移除或者修改其他已经存在于您的系统中 swap 分区 。
注意:在真正考试的时候,使用的设备是 /dev/vda
$ fdisk /dev/vdb
command (m for help): n
Partition type :
p primary (3 primary , 0 extended , 1 free)
e extended
### 这里可以看到已经有3个主分区了,这里我们需要将剩余的空间分给扩展分区就可以了,选择 e 或 Enter
Select (default e) : [Enter]
Using default response e
First sector (616448-20971519,default 616448): [Enter]
Last sector,+sectors or +size{K,M,G} (616448-20971519,default 20971519): [Enter]
### 然后使用 n 添加扩展分区,并分配空间大小为756M,使用 +756M
command (m for help): n
First sector (616448-20971519,default 616448): [Enter]
Last sector,+sectors or +size{K,M,G} (616448-20971519,default 20971519): +756M
### 使用 t 更改类型为 82
command (m for help): t
Partition number (1-5, default 5): 5
Hex code (type L to list all codes): 82
### 保存并退出
command (m for help): w
### 因为分区之前已经挂在了,这里使用 partprobe 同步一下
$ partprobe
$ lsblk
....
vdb
|--vdb1 ...
| |---my--vg-vo .... lvm /my_data
|--vdb2
|--vdb3 ...
|--vdb4 part
|--vdb5 part
### 使用 mkswap 转变为 swap 交换分区
$ mkswap /dev/vdb5
Setting up swapspace version 1, size = 774140 KiB
no label , UUID=82d1baf8-71a0-44ef-b590-c27c12ed0e87
### 使用 >> 追加符把 blkid 追加到 /etc/fstab
$ blkid /dev/vdb5 >> /etc/fstab
$ vim /etc/fstab
### 编辑内容
# /dev/vdb5:
UUID="82d1baf8-71a0-44ef-b590-c27c12ed0e87" swap swap defaults 0 0
### 挂载swapon -a
$ swapon -a
### swapon -s
$ swapon -s
Filename Type Size Used Priority
/dev/vdb5 Partition 774140 0 -1
14、查找文件
找出所有用户 jacques 拥有的文件,并且把他们拷贝放到 /root/findfiles 目录中;
$ mkdir /root/findfiles
$ find / -user jacques 2>/dev/null -exec cp -rfp {} /root/findfiles/ \;
### 检查
$ cd findfiles/
$ ls -lA
15、查找一个字符串
在文件 /usr/share/xml/iso-codes/iso_639_3.xml 中查找到所有包含字符串 ng 的行。将找出的行,按照先后顺序拷贝到 /root/list 文件中。/root/list 文件不要包含空行,并且其中的所有行的内容都必须是 /usr/share/xml/iso-codes/iso_639_3.xml 文件中原始行的准确副本。
$ grep ng /usr/share/xml/iso-codes/iso_639_3.xml > /root/list
16、创建一个归档
创建一个名为 /root/backup.tar.gz 的规档文件,其中包含 /usr/local 目录中的内容。tar 归档文件必须使用gzip进行压缩。
$ tar -czf /root/backup.tar.gz /usr/local
### 查看文件
$ file /root/backup.tar.gz
### bz2 归档
$ tar -cjf /root/backup.tar.bz2 /usr/local
### 查看文件
$ file /root/backup.tar.bz2
17、创建一个逻辑卷
根据下面的要求创建一个新的逻辑卷:
逻辑卷命名为 qa ,属于 qagroup 卷组,并且逻辑卷的大小为 60 个物理扩展单元(physical extent);
在 qagroup 卷组中的逻辑卷,其物理扩展单元(physical extent)的大小应为 16M;
使用 ext3 文件系统对新的逻辑卷进行格式化。逻辑卷应该在系统启动的时候,自动挂载在 /mnt/qa 目录下;
注意:考试的时候,可能会要求格式化为 vfat 格式。
$ mkdir /mnt/qa
$ fdisk /dev/vdb
### 然后使用 n 添加扩展分区,并分配空间大小,这里将剩余空间全部分配给逻辑卷啦
command (m for help): n
First sector (2168832-20971519,default 2168832): [Enter]
Using default value 2168832
Last sector,+sectors or +size{K,M,G} (2168832-20971519,default 20971519):
Using default value 20971519
Partition 6 of type Linux and of size 9GiB is set
### 使用 t 更改类型为 8e --逻辑分区类型 ;82 --交换分区类型
command (m for help): t
Partition number (1-6, default 6): [Enter]
Hex code (type L to list all codes): 8e
### 打印出来看看
command (m for help): p
### 保存并退出
command (m for help): w
$ partprobe
$ pvcreate /dev/vdb6
$ vgcreate -s 16M qagroup /dev/vdb6
$ lvcreate -n qa -l 60 qagroup
$ mkfs.ext3 /dev/qagroup/qa
$ blkid /dev/qagroup/qa >> /etc/fstab
$ vim /etc/fstab
### 编辑插入的内容
#/dev/qagroup/qa:
UUID="0788a674-5b68-4df1-8061-4ccf944e6096" /mnt/qa ext3 defaults 0 0
$ mount -a
### 检查
$ df -Th
最后重启系统
$ systemctl reboot
附件:
环境准备脚本 :
#!/bin/bash
#rhcsa-setup.sh
#配置EX200环境脚本
VMNAME=$(hostname -s)
case $VMNAME in
server0)
echo "更改root用户的密码为随机密码..."
lab rootpw setup
echo "设置SELINUX的值Permissive..."
sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
echo "创建逻辑卷..."
parted -s /dev/vdb mklabel msdos
parted -s /dev/vdb mkpart primary 1 100
parted -s /dev/vdb mkpart primary 101 200
parted -s /dev/vdb mkpart primary 201 300
pvcreate /dev/vdb{1..3} >/dev/null
vgcreate myvg /dev/vdb{1..3} > /dev/null
lvcreate -n myvol -L 50M myvg >/dev/null
mkfs.ext4 /dev/myvg/myvol &>/dev/null
mkdir /mnt/my_data
echo "/dev/myvg/myvol /mnt/my_data ext4 defaults 0 0" >> /etc/fstab
echo "添加一个普通用户jacques..."
useradd jacques
echo "删除YUM软件仓库..."
rm -f /etc/yum.d/*.repo
echo "取消图形界面模式..."
systemctl set-default multi-user.target &>/dev/null
echo "恢复到默认主机名..."
hostnamectl set-hostname localhost
echo "设置完毕并关机..."
history -c && systemctl poweroff
;;
*)
echo "请运行该脚本在您的server0虚拟机"
;;
esac
来源:oschina
链接:https://my.oschina.net/90888/blog/3164522