Linux基础测试

发布于:2025-08-08 ⋅ 阅读:(12) ⋅ 点赞:(0)

linux基础测试

一、环境准备

基础环境信息

  • 登录用户:root(初始密码:redhat)
  • 虚拟机启动:登录后执行 virt-manager,右键启动 node1 和 node2 虚拟机
  • node1 信息:root 密码为 redhat,需完成以下配置任务
  • node2 信息:需先破解 root 密码并设置为 redhat,再完成后续任务

二、node1 主机配置任务

1. 配置网络地址

需求:为 node1 配置网络参数

操作步骤

#因为测试所用是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 服务

  1. 可访问 /var/www/html/ 中的 HTML 文件
  2. 系统启动时自动启动 httpd
  3. 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. 配置用户及组账号

需求

  1. 创建组 admins
  2. 用户 zhsan,附属组为 admins
  3. 用户 lisi,附属组为 admins
  4. 用户 wangwu,无交互登录 Shell,不属于 admins
  5. 所有用户密码: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,配置权限:

  1. 属主、属组均为 root
  2. 无任何用户可执行权限
  3. zhsan 可读写
  4. lisi 不可读写
  5. 其他用户可读取

操作步骤

#先复制
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)

需求

  1. 组所有权为 admins
  2. admins 组成员可读写访问,非 root 其他用户无权限
  3. 目录下新文件自动继承 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 自动挂载

需求:自动挂载远程用户主目录

  1. 远程 NFS 共享:ansible.example.com:/rhome(IP:192.168.122.1
  2. 用户 remoteuser1 密码:password
  3. 本地挂载点:/rhome/remoteuser1
  4. 挂载后可写入

操作步骤

#下载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 提权

需求

  1. 创建用户 user1,密码:test
  2. 授权 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)

需求

  1. 卷组 myvg,扩展块大小 16MiB
  2. 逻辑卷 mylv,大小 50 个扩展单元
  3. 格式化文件系统:vfat
  4. 开机自动挂载到 /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 


网站公告

今日签到

点亮在社区的每一天
去签到