linux基礎測試
一、環境準備
基礎環境信息
- 登錄用戶:root(初始密碼:redhat)
- 虛擬機啟動:登錄后執行 virt-manager,右鍵啟動 node1 和 node2 虛擬機
- node1 信息:root 密碼為 redhat,需完成以下配置任務
- node2 信息:需先破解 root 密碼并設置為 redhat,再完成后續任務
二、node1 主機配置任務
1. 配置網絡地址
需求:為 node1 配置網絡參數
- 主機名:node1.example.com
- IP 地址:192.168.122.10/24
- 默認網關:192.168.122.1
- DNS 服務器:192.168.122.1
操作步驟:
#因為測試所用是rhel9,修改名字的方法有變
hostnamectl hostname node1.example.com
bash#配置網絡
#先用nmcli connection show查看一下網卡的名字(環境不同網卡的名字也有變)
nmcli connection modify enp1s0 ipv4.address 192.168.122.10/24 ipv4.gateway 192.168.122.1 ipv4.dns 192.168.122.1 ipv4.method manual connection.autoconnect yesnmcli connection up enp1s0
2. 配置默認 YUM 軟件倉庫
需求:配置默認軟件源為以下地址
- BaseOS:http://ansible.example.com/rhel9/BaseOS
- AppStream:http://ansible.example.com/rhel9/AppStream
操作步驟:
#自定義yum倉庫
vim /etc/yum.repos.d/server.repo#添加
[a]
name=aa
baseurl=http://ansible.example.com/rhel9/BaseOS
enabled=1
gpgcheck=0[aa]
name=aaa
baseurl=http://ansible.example.com/rhel9/AppStream
enabled=1
gpgcheck=0
3. 調試 SELinux(配置 httpd 服務)
需求:配置 httpd 在 82 端口提供 Web 服務
- 可訪問 /var/www/html/ 中的 HTML 文件
- 系統啟動時自動啟動 httpd
- SELinux 運行在 Enforcing 模式
操作步驟:
#查看防火墻的配置
[root@node1 ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: enp1s0sources: services: cockpit dhcpv6-client http sshports: protocols: forward: yesmasquerade: noforward-ports: source-ports: icmp-blocks: rich rules: #沒有82端口號,添加
firewall-cmd --add-port=82/tcp --permanent
firewall-cmd --reload #檢查http服務是否有82號端口號
semanage port -l | grep http
#沒有82號端口,需要添加
semanage port -a -t http_port_t -p tcp 82
systemctl restart httpd
systemctl enable httpd#檢查/var/www/html下的文件的端口標簽是否正確ll -Z /var/www/html/
#發現不對需要更改
semanage fcontext -a -t httpd_sys_content_t /var/www/html/file1
restorecon -Rv /var/www/html/file1
檢查是否可以訪問
#結果
[root@node1 ~]# curl http://node1:82/file1
Welcome to EX200 exam!
[root@node1 ~]# curl http://node1:82/file2
Welcome to EX200 exam!
[root@node1 ~]# curl http://node1:82/file3
Welcome to EX200 exam!
4. 配置用戶賬戶(tammy)
需求:創建用戶 tammy
- UID:2024
- 密碼:redhat
操作步驟:
useradd -u 2024 tammyecho redhat | passwd --stdin tammy
5. 配置用戶及組賬號
需求:
- 創建組 admins
- 用戶 zhsan,附屬組為 admins
- 用戶 lisi,附屬組為 admins
- 用戶 wangwu,無交互登錄 Shell,不屬于 admins
- 所有用戶密碼:redhat
操作步驟:
#按題目一步一步添加
groupadd admins
useradd -G admins zhsan
useradd -G admins lisi
useradd -s /sbin/nologin wangwu
echo redhat | passwd --stdin zhsan
echo redhat | passwd --stdin lisi
echo redhat | passwd --stdin wangwu
6. 配置 cron 計劃任務
需求:
(1)以 zhsan 身份每 5 分鐘執行:logger "RH200 Test"
(2)以 zhsan 身份每天 14:28 執行:logger "RH200 Test"
操作步驟:
#指定zhsan進入cron任務編輯
crontab -u zhsan -e#添加
*/5 * * * * logger "RH200 Test"
28 14 * * * logger "RH200 Test"
7. 配置文件權限(/var/tmp/hosts)
需求:復制 /etc/hosts 到 /var/tmp/hosts,配置權限:
- 屬主、屬組均為 root
- 無任何用戶可執行權限
- zhsan 可讀寫
- lisi 不可讀寫
- 其他用戶可讀取
操作步驟:
#先復制
cp /etc/hosts /var/tmp/hosts#查看文件權限情況
ll /var/tmp/hosts
-rw-rw-r--+ 1 root root 481 8月 7 20:30 /var/tmp/hosts
#發現1,2,5題的條件已經滿足#3,4題需要設置acl
setfacl -m u:zhsan:rw- /var/tmp/hosts
setfacl -m u:lisi:--- /var/tmp/hosts
8. 創建共用目錄(/home/tools)
需求:
- 組所有權為 admins
- admins 組成員可讀寫訪問,非 root 其他用戶無權限
- 目錄下新文件自動繼承 admins 組所有權
操作步驟:
#創建文件
mkdir /home/tools#查看文件的權限布置
ll -d /home/tools#按題目更改權限
chgrp admins /home/tools/
ll -d /home/tools
chmod g=rwx,o=--- /home/tools/
chomd g+s /home/tools/
9. 配置 NTP 時間客戶端
需求:配置系統為 ansible.example.com 的 NTP 客戶端
操作步驟:
#檢查是否有chrony服務
rpm -q chrony
#如沒有就要先下載chrony服務
yum -y install chrony#進入配置文件里
vim /etc/chrony.conf # Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
#pool 2.rhel.pool.ntp.org iburst #將原來的注釋掉
server ansible.example.com iburst #添加題目給的服務器地址#重啟服務
systemctl restart chronyd
systemctl enable chronyd
hwclock -w #同步
10. 配置 autofs 自動掛載
需求:自動掛載遠程用戶主目錄
- 遠程 NFS 共享:ansible.example.com:/rhome(IP:192.168.122.1)
- 用戶 remoteuser1 密碼:password
- 本地掛載點:/rhome/remoteuser1
- 掛載后可寫入
操作步驟:
#下載autofs服務
yum -y install autofs#進入配置文件
vim /etc/auto.master
#添加新的主文件
/misc /etc/auto.misc
/rhome /etc/auto.nfs #復制模板
cp /etc/auto.misc /etc/auto.nfs#進入新的自動掛載點配置文件
vim /etc/auto.nfs
#將原先的注釋掉,再最下面添加
remoteuser1 -fstype=nfs,vers=4,rw ansible.example.com:/rhome/remoteuser1#重啟服務
systemctl restart autofs
systemctl enable autofs
11. 查找用戶文件
需求:查找用戶 tammy 的所有文件,副本放入 /root/files 目錄
操作步驟:
#新建存放目錄
mkdir /root/filesfind / -user tammy -exec cp -rf {} /root/files/ \;
12. 查找字符串
需求:在 /etc/man_db.conf 中查找含 sbin 的行,保存到 /root/out.txt(無空行,保持原始順序)
操作步驟:
grep sbin /etc/man_db.conf | grep -v ^$ > /root/out.txt
13. 創建歸檔文件
需求:
(1)創建 /root/backup.tar.bz2,包含 /usr/local/,使用 bzip2 壓縮
(2)創建 /root/sysconfig.tar.gz,包含 /etc/sysconfig/,使用 gzip 壓縮
操作步驟:
tar -cjvf /root/backup.tar.bz2 /usr//local/
#發現沒有bzip2的服務
#下載bzip2
yum -y install bzip2#重新歸檔
tar -cjvf /root/backup.tar.bz2 /usr//local/tar -czvf /root/sysconfig.tar.gz /etc/sysconfig/
14. 配置用戶密碼有效期
需求:新增用戶密碼 25 天后失效,過期前 5 天警告
操作步驟:
#進入/login.defs配置文件
vim /etc/login.defs
#在里面查找并修改
15. 配置 sudo 提權
需求:
- 創建用戶 user1,密碼:test
- 授權 user1 組用戶無密碼執行管理員命令
操作步驟:
#創建用戶,密碼
useradd user1
echo test | passwd --stdin user1#用visudo進入配置
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
%user1 ALL=(ALL) NOPASSWD: ALL
添加user1組的用戶無需密碼執行命令
三、node2 主機配置任務
1. 重置 root 密碼及網絡配置
需求:
- 獲取 node2 管理權限,設置 root 密碼為 redhat
- 配置網絡參數(參考 node1 網絡規則,確保連通性)
操作步驟:
#rhl9的破解用戶密碼也有不同
#進入grub菜單時切換到第二個,然后按e進入編輯模式
#和7版本一樣在Linux最后添加 rd.break 但還要添加 console=tty0
#按ctrl+x進入偽系統
#重新掛載,進入系統
mount -o remount,rw /sysroot
chroot /sysroot#修改密碼,添加標簽
echo redtat | passwd --stdin root
touch /.autorelableexit*2退出
2. 配置 YUM 軟件倉庫
需求:同 node1,使用以下源
- BaseOS:http://ansible.example.com/rhel9/BaseOS
- AppStream:http://ansible.example.com/rhel9/AppStream
操作步驟:
#因為node1已經配置過,可以直接遠程復制過來
scp root@ansible:/etc/yum.repos.d/server.repo /etc/yum.repos.d/
3. 調整邏輯卷大小(lv0)
需求:將邏輯卷 lv0 及文件系統調整為 300MiB,保持內容不變
操作步驟:
#先查看lv0的原本大小
df -Th
/dev/mapper/vg0-lv0 ext4 #查看vg0的大小是否足夠300mib
vgdisplay#對lv0進行擴容
lvextend -L 300M /dev/vg0/lv0
resize2fs /dev/vg0/lv0
4. 添加交換分區
需求:新增 512MiB 交換分區,系統啟動自動掛載,保留原有交換分區
操作步驟:
#先查看磁盤分區和swap的大小
parted -l
free -m#選擇用/dev/vdb來添加分區
parted /dev/vdb
#添加512MIB的分區udevadm settle#用swap格式化分區
mkswap /dev/vdb2
#將uuid加入到fstab中
vim /etc/fstab
uuid= swap swap defulet 0 0#啟動swap
swapon -a#查看是否增加
free -m
5. 創建邏輯卷(mylv)
需求:
- 卷組 myvg,擴展塊大小 16MiB
- 邏輯卷 mylv,大小 50 個擴展單元
- 格式化文件系統:vfat
- 開機自動掛載到 /mnt/mydata
操作步驟:
#創建一個新的分區
parted /dev/vdb
udevadm settle#按要求新建物理卷,卷組,邏輯卷
pvcreate /dev/vdb3
vgcreate -s 16M myvg /dev/vdb3
lvcreate -l 50 -n mylv myvg#用vfat格式化
mkfs.vfat /dev/myvg/mylv #新建掛載地,查看分區uuid
mkdir /mnt/mydata
blkid /dev/myvg/mylv #添加到fstab中
vim /etc/fstab
#刷新掛載
mount -a
6. 配置系統調優(tuned)
需求:選擇建議的 tuned 配置集并設為默認
操作步驟:
#系統推薦;設置;啟動
tuned-adm recommend
tuned-adm profile virtual-guest
tuned-adm active