紅帽考試RHCSA練習
環境準備
重設虛擬機的root密碼
關鍵點:如何進入恢復模式(正常的系統根默認掛載到 /sysroot)
1)重啓虛擬機,出現 GRUB 啓動菜單時按 2次e 鍵進入編輯狀態
2)找到 linux16 所在行,末尾添加 rd.break console=tty0,按 Ctrl+x 鍵進恢復模式
3)以可寫方式掛載硬盤中的根目錄,並重設 root 密碼:
switch_root:/#
switch_root:/# mount -o remount,rw /sysroot
switch_root:/# chroot /sysroot/
sh-4.2# echo 密碼 | passwd --stdin root
sh-4.2# touch /.autorelabel //重新設置selinux標籤
或者
sh-4.2# vim /etc/selinux/config
SELINUX=disabled
sh-4.2# exit
switch_root:/# reboot
爲虛擬機配置網絡
網卡名(內核識別的設備名):eth0
連接名(管理員指定的配置名):eth0 (System eth0)
系統服務:NetworkManager
nmcli
Network Manager Command Line Interface
如果原來已經有現成的連接:
1)修改連接配置
nmcli con mod “連接名” ipv4.method manual ipv4.addresses “IPv4地址/掩碼位數 默認網關地址” ipv4.dns DNS服務器地址 connection.autoconnect yes
2)激活新配置
nmcli con up “連接名”
關於RHEL7.2以上系統,默認網關配置:
nmcli con mod … … ipv4.gateway 默認網關地址
如果原來沒有任何現成的連接:
1)先添加連接
nmcli con add con-name 連接名 ifname 網卡名 type ethernet
2)再修改連接配置
3)激活新配置
1、配置yum倉庫
YUM的軟件庫源爲 http://content.example.com/rhel7.0/x86_64/dvd,將此配置爲您的系統的默認軟件倉庫。
[root@server0 ~]# yum-config-manager --add http://content.example.com/rhel7.0/x86_64/dvd
//添加指定軟件源
[root@server0 ~]# vim /etc/yum.conf
gpgcheck=0 //找到此行,把原來的 1 改爲 0,不檢查軟件簽名
[root@server0 ~]# yum repolist
2、配置一個用戶賬戶
創建一個名爲alex的用戶,用戶ID是 3456,密碼是flectrag
[root@server0 ~]# useradd -u 3456 alex
3、創建用戶帳戶
創建下列用戶、組以及和組的成員關係:
- 一個名爲adminuser的組
- 一個名爲natasha的用戶,其屬於adminuser,這個組是該用戶的從屬組
- 一個名爲harry的用戶,屬於adminuser,這個組是該用戶的從屬組
- 一個名爲sarah的用戶,其在系統中沒有可交互的shell,並且不是adminuser組的成員用戶
- natasha、harry、和sarah的密碼都要設置爲flectrag
[root@server0 ~]# groupadd adminuser
[root@server0 ~]# useradd -G adminuser natasha
[root@server0 ~]# useradd -G adminuser harry
[root@server0 ~]# useradd -s /sbin/nologin sarah
[root@server0 ~]# echo flectrag | passwd --stdin sarah
[root@server0 ~]# echo flectrag | passwd --stdin harry
[root@server0 ~]# echo flectrag | passwd --stdin natasha
4、配置文件/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@server0 ~]# cp /etc/fstab /var/tmp/fstab
[root@server0 ~]# ls /var/tmp/fstab
/var/tmp/fstab
[root@server0 ~]# ls -l /var/tmp/fstab
-rw-r--r--. 1 root root 313 Apr 9 14:18 /var/tmp/fstab
[root@server0 ~]# setfa
setfacl setfattr
[root@server0 ~]# setfacl -m user:natasha:rw /var/tmp/fstab
[root@server0 ~]# ls -l /var/tmp/fstab
-rw-rw-r--+ 1 root root 313 Apr 9 14:18 /var/tmp/fstab
[root@server0 ~]# setfacl -m user:harry:--- /var/tmp/fstab
[root@server0 ~]# ls -l /var/tmp/fstab
-rw-rw-r--+ 1 root root 313 Apr 9 14:18 /var/tmp/fstab
[root@server0 ~]# 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--
5、創建一個共享目錄
創建一個共享目錄/home/admins ,特性如下:
-
/home/admins目錄的組所有權是adminuser
-
adminuser組的成員對目錄有讀寫和執行的權限。除此之外的其他所有用戶沒有任何權限(root用戶能夠訪問系統中的所有文件和目錄)
-
在/home/admins目錄中創建的文件,其組所有權會自動設置爲屬於adminuser組
-
[注]此處所謂的共享目錄並不是指網絡共享,只是某個組成員共用
[root@server0 ~]# mkdir /home/admins
[root@server0 ~]# ls -ld /home/admins
drwxr-xr-x. 2 root root 6 Apr 9 14:24 /home/admins
[root@server0 ~]# chown :adminuser /home/admins
[root@server0 ~]# ls -ld /home/admins
drwxr-xr-x. 2 root adminuser 6 Apr 9 14:24 /home/admins
[root@server0 ~]# chmod 770 /home/admins
[root@server0 ~]# ls -ld /home/admins
drwxrwx---. 2 root adminuser 6 Apr 9 14:24 /home/admins
[root@server0 ~]# chmod g+s /home/admins
[root@server0 ~]# ls -ld /home/admins
drwxrws---. 2 root adminuser 6 Apr 9 14:24 /home/admins
[root@server0 ~]# touch /home/admins/a.txt
[root@server0 ~]# ls -l /home/admins/a.txt
-rw-r--r--. 1 root adminuser 0 Apr 9 14:27 /home/admins/a.txt
或
6、配置一個cron任務
爲用戶natasha配置一個定時任務,每天在本地時間14:23時執行命令 /bin/echo hiya
[root@server0 ~]# crontab -e -u natasha
no crontab for natasha - using an empty one
crontab: installing new crontab
23 14 * * * /bin/echo hiya
7、安裝內核的升級
從指定的地址 http://classroom.example.com/content/rhel7.0/x86_64/errata/Pa ckages/ 找到新版kernel的rpm安裝文件,下載並用來升級內核,同時要滿足下列要求:
- 當系統重新啓動之後升級的內核要作爲默認的內核
- 原來的內核要被保留,並且仍然可以正常啓動
[root@server0 ~]# ls /boot/vmlinuz-*
[root@server0 ~]# yum -y install http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/kernel-3.10.0-123.1.2.el7.x86_64.rpm
[root@server0 ~]# ls /boot/vmlinuz-*
[root@server0 ~]# uname -r
[root@server0 ~]# reboot
[root@server0 ~]# uname -r
8、配置NTP網絡時間客戶端
配置您的系統,讓其作爲 NTP 服務器 classroom.example.com 的客戶端
[root@server0 ~]# vim /etc/chrony.conf
server classroom.example.com iburst
#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
[root@server0 ~]# systemctl restart chronyd.service
[root@server0 ~]# systemctl enable chronyd.service
9、綁定到外部驗證服務
系統 classroom.example.com 提供了一個 LDAP 驗證服務。您的系統需要按照以下要求綁定到這個服務上:
- 驗證服務器的基本 DN 是:dc=example,dc=com
- 帳戶信息和驗證信息都是由 LDAP 提供的
- 連接要使用證書進行加密,證書可以在下面的鏈接中下載 :http://classroom.example.com/pub/example-ca.crt
- 當正確完成配置後,用戶 ldapuser0 應該能夠登錄到您的系統中,但是沒有主目錄。當您完成 autofs的題目之後,才能生成主目錄
- 用戶ldapuser0的密碼是password
[root@server0 ~]# yum -y install sssd
[root@server0 ~]# authconfig-tui
[root@server0 ~]# cd /etc/openldap/cacerts
[root@server0 cacerts]# ls
[root@server0 cacerts]# wget http://classroom.example.com/pub/example-ca.crt
[root@server0 cacerts]# ls
example-ca.crt
[root@server0 ~]# systemctl restart sssd
[root@server0 ~]# id ldapuser0
uid=1700(ldapuser0) gid=1700(ldapuser0) groups=1700(ldapuser0)
[root@server0 ~]# ssh ldapuser0@server0
The authenticity of host 'server0 (172.25.0.11)' can't be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server0,172.25.0.11' (ECDSA) to the list of known hosts.
ldapuser0@server0's password:
Could not chdir to home directory /home/guests/ldapuser0: No such file or directory
mkdir: cannot create directory ‘/home/guests’: Permission denied
-bash-4.2$
-bash-4.2$
-bash-4.2$ exit
logout
Connection to server0 closed.
[root@server0 ~]# su - ldapuser0 //沒有家目錄
Last login: Thu Apr 9 15:33:59 CST 2020 from server0.example.com on pts/2
su: warning: cannot change directory to /home/guests/ldapuser0: No such file or directory
mkdir: cannot create directory '/home/guests': Permission denied
10、autofs的配置
按照下述要求配置 autofs 用來自動掛載 LDAP 用戶的主目錄:
- classroom.example.com(172.25.0.11)通過 NFS 輸出 /home/guests 目錄到您的系統,這個文件系統包含了用戶ldapuser0的主目錄,並且已經預先配置好了
- ldapuser0用戶的主目錄是 classroom.example.com:/home/guests/ldapuser0
- ldapuser0的主目錄應該按需掛載到本地的/home/guests/ldapuser0 目錄下
- 用戶對其主目錄必須是可寫的
- ldapuser0用戶的密碼是password
[root@server0 ~]# yum -y install autofs
[root@server0 ~]# vim /etc/auto.master
/home/guests /etc/guests.rule
[root@server0 ~]# vim /etc/guests.rule
ldapuser0 -rw classroom.example.com:/home/guests/ldapuser0
[root@server0 ~]# systemctl start autofs
[root@server0 ~]# systemctl enable autofs
[root@server0 ~]# ls -ld /home/guests/ldapuser0/
drwx------. 5 ldapuser0 ldapuser0 4096 Apr 9 16:12 /home/guests/ldapuser0/
[root@server0 ~]# su - ldapuser0
Last login: Thu Apr 9 16:12:26 CST 2020 on pts/0
[ldapuser0@server0 ~]$ pwd
/home/guests/ldapuser0
11、查找文件
找出所有用戶student擁有的文件,並且把它們拷貝到/root/findfiles 目錄中
[root@server0 ~]# find / -user student -type f -exec cp -p {} /root/findfiles/ \;
[root@server0 ~]# ls -al /root/findfiles
12、查找一個字符串
在文件/usr/share/dict/words中查找到所有包含字符串seismic的行:
- 將找出的行按照原文的先後順序拷貝到/root/wordlist文件中
- /root/wordlist文件不要包含空行,並且其中的所有行的內容都必須是 /usr/share/dict/words文件中原始行的準確副本
[root@server0 ~]# grep seismic /usr/share/dict/words > /root/wordlist
13、創建一個歸檔
創建一個名爲/root/backup.tar.bz2的歸檔文件,其中包含/usr/local目錄中的內容,tar歸檔必須使用bzip2進行壓縮
[root@server0 ~]# tar -jPcf /root/backup.tar.bz2 /usr/local
[root@server0 ~]# ls
[root@server0 ~]# file backup.tar.bz2
backup.tar.bz2: bzip2 compressed data, block size = 900k
14、創建一個邏輯卷
14.1、考試環境與練習環境區別
注(1):考試環境直接操作磁盤/dev/vda(包含 Linux 系統),使用剩餘空間完成考題要求
注(2):練習環境需要自行處理/dev/vdb,模擬成“已使用部分空間+剩餘空間”的磁盤練習環境
14.2、練習環境的磁盤環境準備
[root@server0 ~]# fdisk /dev/vdb
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +200M
Partition 1 of type Linux and of size 200 MiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (411648-20971519, default 411648):
Using default value 411648
Last sector, +sectors or +size{K,M,G} (411648-20971519, default 20971519): +2000M
Partition 2 of type Linux and of size 2 GiB is set
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (4507648-20971519, default 4507648):
Using default value 4507648
Last sector, +sectors or +size{K,M,G} (4507648-20971519, default 20971519): +1000M
Partition 3 of type Linux and of size 1000 MiB is set
Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: dos
Disk identifier: 0x4405d8b2
Device Boot Start End Blocks Id System
/dev/vdb1 2048 411647 204800 83 Linux
/dev/vdb2 411648 4507647 2048000 83 Linux
/dev/vdb3 4507648 6555647 1024000 83 Linux
Command (m for help): w
[root@server0 ~]# partprobe /dev/vdb
[root@server0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 10G 0 disk
└─vda1 252:1 0 10G 0 part /
vdb 252:16 0 10G 0 disk
├─vdb1 252:17 0 200M 0 part
├─vdb2 252:18 0 2G 0 part
└─vdb3 252:19 0 1000M 0 part
[root@server0 ~]# vgcreate systemvg /dev/vdb1
Physical volume "/dev/vdb1" successfully created
Volume group "systemvg" successfully created
[root@server0 ~]# lvcreate -n vo -L 180M systemvg
Logical volume "vo" created
[root@server0 ~]# lvscan
ACTIVE '/dev/systemvg/vo' [180.00 MiB] inherit
[root@server0 ~]# mkfs.ext3 /dev/systemvg/vo
14.3、根據題目,規劃分區方案
[root@server0 ~]# fdisk /dev/vdb
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
Selected partition 4
First sector (6555648-20971519, default 6555648):
Using default value 6555648
Last sector, +sectors or +size{K,M,G} (6555648-20971519, default 20971519):
Using default value 20971519
Partition 4 of type Extended and of size 6.9 GiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (6557696-20971519, default 6557696):
Using default value 6557696
Last sector, +sectors or +size{K,M,G} (6557696-20971519, default 20971519): +500M
Partition 5 of type Linux and of size 500 MiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (7583744-20971519, default 7583744):
Using default value 7583744
Last sector, +sectors or +size{K,M,G} (7583744-20971519, default 20971519): +2000M
Partition 6 of type Linux and of size 2 GiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 7
First sector (11681792-20971519, default 11681792):
Using default value 11681792
Last sector, +sectors or +size{K,M,G} (11681792-20971519, default 20971519): +512M
Partition 7 of type Linux and of size 512 MiB is set
Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: dos
Disk identifier: 0x4405d8b2
Device Boot Start End Blocks Id System
/dev/vdb1 2048 411647 204800 83 Linux
/dev/vdb2 411648 4507647 2048000 83 Linux
/dev/vdb3 4507648 6555647 1024000 83 Linux
/dev/vdb4 6555648 20971519 7207936 5 Extended
/dev/vdb5 6557696 7581695 512000 83 Linux
/dev/vdb6 7583744 11679743 2048000 83 Linux
/dev/vdb7 11681792 12730367 524288 83 Linux
Command (m for help): w
[root@server0 ~]# partprobe /dev/vdb
[root@server0 ~]# reboot //重啓一次確保所有新分區表生效
[root@server0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 10G 0 disk
└─vda1 252:1 0 10G 0 part /
vdb 252:16 0 10G 0 disk
├─vdb1 252:17 0 200M 0 part
│ └─systemvg-vo 253:0 0 180M 0 lvm
├─vdb2 252:18 0 2G 0 part
├─vdb3 252:19 0 1000M 0 part
├─vdb4 252:20 0 1K 0 part
├─vdb5 252:21 0 500M 0 part
├─vdb6 252:22 0 2G 0 part
└─vdb7 252:23 0 512M 0 part
14.4、創建一個邏輯卷
根據下面的要求創建一個新的邏輯卷:
邏輯卷命名爲database,屬於datastore卷組,並且邏輯卷的大小爲50個物理擴展單元 (physical extent)
在datastore卷組中的邏輯卷,物理擴展單元 (physical extent) 大小應爲 16 MiB
使用ext3文件系統對新的邏輯捲進行格式化,此邏輯卷應該在系統啓動的時候自動掛載在 /mnt/database 目錄下
[root@server0 ~]# vgcreate -s 16MiB datastore /dev/vdb6
Physical volume "/dev/vdb6" successfully created
Volume group "datastore" successfully created
[root@server0 ~]# lvcreate -l 50 -n database datastore
Logical volume "database" created
[root@server0 ~]# mkfs.ext3 /dev/datastore/database
[root@server0 ~]# mkdir /mnt/database
[root@server0 ~]# vim /etc/fstab
/dev/datastore/database /mnt/database ext3 defaults 0 0
[root@server0 ~]# mount -a
[root@server0 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 xfs 10G 3.3G 6.8G 33% /
devtmpfs devtmpfs 478M 0 478M 0% /dev
tmpfs tmpfs 498M 80K 497M 1% /dev/shm
tmpfs tmpfs 498M 14M 484M 3% /run
tmpfs tmpfs 498M 0 498M 0% /sys/fs/cgroup
/dev/mapper/datastore-database ext3 772M 828K 715M 1% /mnt/database
15、調整邏輯卷的大小
自行建立一個200MiB的邏輯卷 /dev/systemvg/vo,格式化爲ext3文件系統並掛載到 /vo 。然後將邏輯卷vo和其文件系統大小調整到 300 MiB。要確保文件系統中的內容保持完整。請注意:分區大小很少能夠完全符合要求的大小,所以大小在 270 MiB 和 330 MiB 之間都是可以接受的。
[root@server0 ~]# lvscan
ACTIVE '/dev/systemvg/vo' [180.00 MiB] inherit
ACTIVE '/dev/datastore/database' [800.00 MiB] inherit
[root@server0 ~]# vgextend systemvg /dev/vdb5
[root@server0 ~]# lvextend -L 300MiB /dev/systemvg/vo
[root@server0 ~]# resize2fs /dev/systemvg/vo
[root@server0 ~]# lvscan
ACTIVE '/dev/systemvg/vo' [300.00 MiB] inherit
ACTIVE '/dev/datastore/database' [800.00 MiB] inherit
16、添加一個swap分區
在您的系統中添加一個大小爲 512 MiB 的swap分區:
當您的系統啓動時,swap 分區應該可以自動掛載
不要移除或者修改其他已經存在於您的系統中的 swap 分區
[root@server0 ~]# vim /etc/fstab
/dev/vdb7 swap swap defaults 0 0
[root@server0 ~]# swapon -a
[root@server0 ~]# swapon -s
Filename Type Size Used Priority
/dev/vdb7 partition 524284 0 -1