linux基础测试
一、环境准备
基础环境信息
- 登录用户:root(初始密码:redhat)
- 虚拟机启动:登录后执行 virt-manager,右键启动 node1 和 node2 虚拟机
- node1 信息:root 密码为 redhat,需完成以下配置任务
- node2 信息:需先破解 root 密码并设置为 redhat,再完成后续任务
二、node1 主机配置任务
1. 配置网络地址
需求:为 node1 配置网络参数
- 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 yes
nmcli connection up enp1s0
2. 配置默认 YUM 软件仓库
需求:配置默认软件源为以下地址
操作步骤:
#自定义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: default
icmp-block-inversion: no
interfaces: enp1s0
sources:
services: cockpit dhcpv6-client http ssh
ports:
protocols:
forward: yes
masquerade: no
forward-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 tammy
echo 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/
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/files
find / -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
#将原先归档失败的文件删除,重新归档
rm -rf backup.tar.bz2
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 /.autorelable
exit*2退出
2. 配置 YUM 软件仓库
需求:同 node1,使用以下源
操作步骤:
#因为node1已经配置过,可以直接远程复制过来
scp root@node1:/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 defaults 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