在 servera 上 配置网络 要求如下
nmtui
nmcli device s
nmcli connection up enp1s0
systemctl restart NetworkManager
vim /etc/sysconfig/network-scripts/ifcfg-ens160 #### 重要!!!!
ONBOOT=yes #### 重要!!!!
systemctl restart NetworkManager
ifconfig | grep 172.25
然后在 workstation 远程 servera
ssh root@172.25.250.10
修改主机名:
hostnamectl set-hostname servera.lab.example.com
exec bash
' 验证 '
hostname
YUM 的 存储库 地址分别为:
vim /etc/yum.repos.d/rhel.repo
[BaseOS]
name=BaseOS
baseurl=http://content.example.com/rhel8.2/x86_64/dvd/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=http://content.example.com/rhel8.2/x86_64/dvd/AppStream
enabled=1
gpgcheck=0
yum clean all
yum makecache
yum list | wc -l
非标准端口 82 上运行的 WEB 服务 在提供内容时遇到了问题
根据需求调试并解决问题 并使其满足以下条件:
systemctl start httpd # 这时我们发现启动报错了!!
vim /var/log/messages # 我们查看 log 找报错原因
### 报错原因:
### SELinux 端口信息未添加 82 端口 [ 而 我们的 Web 服务需要在 82 端口 启用 ]
-------------------------------
vim /etc/httpd/conf/httpd.conf
Listen 82
systemctl restart httpd
--------------------------------
semanage port -l | grep http # http_port_t 无 82 端口
' 查看帮助 '
man semanage port | grep -A20 EXA
semanage port -a -t http_port_t -p tcp 82 # 添加 82 端口
semanage port -l | grep http # 查看是否已添加成功
systemctl start httpd # 启动服务
systemctl enable httpd # 开机自启
### 最后 cd 至 /var/www/html
### 查看 html 上下文信息 并依次验证 html文件
ls -Z ./* # 发现 index2 的上下文信息有问题
### 修改 index2 上下文信息 并刷新
man semanage fcontext | grep -A20 EXA
semanage fcontext -a -t httpd_sys_content_t index2.html
restorecon -Rv index2.html
_________________________________________________
### 需关闭防火墙才可访问 [ 或者开 82 端口策略 ]
systemctl stop firewalld.service
systemctl disable firewalld.service
_________________________________________________
### Web 访问 验证
172.25.250.10:82/index.html
172.25.250.10:82/index2.html
172.25.250.10:82/index3.html
### 开机自启 !!!!
systemctl status httpd ### 查看!!!!!
systemctl enable httpd ### 重要!!!!!
创建 下列 用户 用户组 并按要求完成设置
groupadd sysmgrs # 创建组
useradd natasha -G sysmgrs # 创建用户 并设置用户扩展组
id natasha # 查看是否创建完成
useradd harry -G sysmgrs # 创建用户 并设置用户扩展组
id harry
——————————————————————————
ll /bin/ | grep fal
——————————————————————————
useradd john -s /bin/false # 创建 非交互shell 用户
### 设置密码
echo 'redhat' | passwd --stdin natasha
echo 'redhat' | passwd --stdin harry
echo 'redhat' | passwd --stdin john
### 最后记得要验证一下密码!!!
ssh natasha@127.0.0.1
ssh harry@127.0.0.1
ssh john@127.0.0.1
注:SELinux 需全程保持开启状态
知识点:
* * * * *
分 时 日 月 周
每隔 2 分钟 运行并执行以下命令:
' 设置计划任务 '
crontab -e -u natasha
*/2 * * * * logger "EX200 in progress"
' 查看是否设置成功 '
su - natasha
crontab -l
exit
' 查看日志验证 '
grep EX200 /var/log/messages
在 23:14 这个时刻 运行并执行以下命令:
crontab -e -u natasha
14 23 * * * logger "EX200 in progress"
创建 具有 特殊权限 的目录 /home/managers 要求如下:
mkdir /home/managers
chown :sysmgrs /home/managers ' 修改属组 '
ll -d /home/managers
---------------------------------------------------------
' 修改目录权限 '
chmod 2770 /home/managers [ SGID=2 root=7 group=7 other=0 ]
ll -d /home/managers
----------------------------------------------------------
chmod g=rwx /home/managers
chmod o=--- /home/managers
chmod g+s /home/managers
' 验证 '
cd /home/managers
touch test
ll [ 查看 test 文件是否有继承 managers 目录的权限 ]
rm -rf test
知识点:
[ SUID=4000 SGID=2000 SBIT=1000 ]
SGID:当一个目录被赋予 SGID 权限后 进入此目录的用户 [ 包括 root ] 其有效群组会变为该目录的所属组 就会使得用户在创建文件[ 或目录 ] 时 该文件 [ 或目录 ] 的所属组将不再是用户的所属组 而是目录的所属组
配置 servera 作为 NTP 的客户端 跟时间服务器 172.25.250.250 同步时间
vim /etc/chrony.conf
' 修改第三行 '
server 172.25.250.250 iburst
' 重新启动并开机自启 '
systemctl restart chronyd
systemctl enable chronyd
' 验证 '
chronyc sources
MS
==
^* [ ^表示服务 *表示同步成功] ---- 只有 * 代表同步成功
date
配置 autofs 按照以下要求自动挂载远程用户的家目录 要求如下:
yum install autofs -y [ 安装 autofs 守护进程 ]
---------------------------
systemctl status ypbind
systemctl start ypbind
systemctl status ypbind
--------------------------
[ 修改主配置文件 ]
vim /etc/auto.master
/rhome /etc/auto.rhome [ 挂载目录 子配置文件 ]
[ 修改子配置文件]
cp /etc/auto.misc /etc/auto.rhome
vim /etc/auto.rhome
user1 -fstype=nfs,rw workstation.lab.example.com:/rhome/user1
[ 重启 autofs 并设置开机自启 ]
systemctl restart autofs
systemctl enable autofs
[ 验证 ]
ssh user1@localhost
df -h
配置文件权限 将文件 /etc/fstab 复制到 /var/tmp/fstab
配置 /var/tmp/fstab 权限 满足如下条件
cp /etc/fstab /var/tmp/fstab
chown root:root /var/tmp/fstab
chmod a-x /var/tmp/fstab
setfacl -m u:natasha:rw- /var/tmp/fstab
setfacl -m u:harry:--- /var/tmp/fstab
chmod o+r /var/tmp/fstab
' 最后验证 '
getfacl /var/tmp/fstab
useradd -u 3533 manalo
echo 'redhat' | passwd --stdin manalo
' 验证 '
id manalo
ssh manalo@172.25.250.10
mkdir /root/findfiles
' 两种方式 '
find / -user jacques -exec cp -a {} /root/findfiles \;
cp -a `find / -user jacques` /root/findfiles
cd /root/findfiles [ 验证 ]
grep ng /usr/share/xml/iso-codes/iso_639_3.xml > /root/test
grep -v ^$ /root/test > /root/list
rm -rf /root/test
tar czvf /root/backup.tar.gz /usr/local
gzip ---- czvf
bzip2 ---- cjvf
xz ---- cJvf
' 验证 '
ls /root
允许 sysmgrs 组的成员可以 以 root 身份执行任何命令 并且 不需要密码
[ 将固定格式输出 ]
grep wheel /etc/sudoers > /etc/sudoers.d/sysmgrs
[ 编写配置文件 ]
vim /etc/sudoers.d/sysmgrs
%sysmgrs ALL=(ALL) NOPASSWD: ALL [ 开头的 % 记得添加!!! ]
' 验证 '
su - harry
sudo su - root [ 注:是使用 sudo 命令提权 无需密码 ]
su - root [ 直接 su - root 是不行的!!!]
为新创建的用户设置 密码策略 要求创建用户时 密码默认 20 天 后过期
vim /etc/login.defs
PASS_MAX_DAYS 20
保存并退出
设置 natasha 用户创建的 目录权限默认为 733 文件权限为 622 要求:永久生效
初始 umask 0022
目录权限为:755
文件权限为:644
[ 切换用户 ]
su - natasha
[ 编写.bashrc ]
vim ~/.bashrc
umask 0044 [ 末行添加 ]
source ~/.bashrc
[ 验证 ]
cd ~
mkdir test
touch test
重启 >> 出现 GRUB 启动菜单时 >> 按 e 键 进入 编辑状态
找到 linux 所在行 >> 末尾添加 rd.break 按下 ctrl + x 键 进入恢复模式
然后以可写方式重新挂载硬盘中的根分区 >> 并重新 设置 root 密码
mount -o remount,rw /sysroot ' 以可读写方式重新挂载根系统
chroot /sysroot ' 切换到根系统
echo 'redhat' | passwd --stdin root ' 设置指定的密码
touch /.autorelabel ' 标记下一次启动重做selinux标记
ctrl + D ' 退出
ctrl + D ' 重启
lsblk # 查看
lvs | grep v0 # 查看 v0 逻辑卷 信息
如图所示:逻辑卷 v0 属于 卷组 vg0 大小为 100M
我们再来查看一下 卷组 vg0 的信息
如图所示:VG0 的空间剩余 920M 足够分配
接下来我们进行 逻辑卷扩容
' 扩容 '
lvextend -r -L 200M /dev/vg0/v0
' 查看 '
lvs
完成
lsblk ' 查看 '
' 使用一块系统中未分区的磁盘 '
fdisk /dev/vdc # 分区
n # 新建
p # 主分区
1
Enter # 起始扇区
+756M # 大小
t # 改变类型
82 # 交换分区
p # 查看
w # 保存退出
lsblk # 查看是否创建成功
mkswap /dev/vdc1 [ 创建交换分区 ]
swapon /dev/vdc1 [ 启动交换分区 ]
lsblk -f | grep vdc1 [ 查看 UUID ]
[ 挂载 ]
vim /etc/fstab
mount -a
swapon -s [ 查看是否启动 ]
free -h [ 查看是否成功 ]
根据如下要求 创建新的逻辑卷
lsblk
[ 首先创建分区 ]
fdisk /dev/vdc
n
p
2
Enter
+1.5G [ 要大于 16*60 ]
t
2
8e
p
wq
[ 然后创建物理卷PV ]
pvcreate /dev/vdc2
pvs # 查看
[ 再创建卷组VG ]
vgcreate datastorage -s 16M /dev/vdc2
vgdispaly # 查看
[ 最后创建逻辑卷LV ]
lvcreate -n database -l 60 /dev/datastorage
lvs # 查看
[ 格式化 ]
mkfs.ext4 /dev/datastorage/database
[ 挂载 ]
mkdir /mnt/data
vim /etc/fstab
UUID=2c447160-496f-4e49-9cc9-1db9b2e95f01 /mnt/data ext4 defaults 0 0
mount -a
df -Th # 查看
根据如下要求 创建新的 VDO 卷
yum install vdo -y
[ 创建VDO ]
man vdo | grep create [ 查看帮助 ]
vdo create --name=vdotest --device=/dev/vdd --vdoLogicalSize=50G
[ 格式化 ] ### 注意: -K 参数!!!
mkfs.xfs -K /dev/mapper/vdotest
[ 创建挂载目录 ]
mkdir /mnt/vdotests
[ 查看帮助 ]
man vdo | grep defaults
vim /etc/fstab
/dev/mapper/vdotest /mnt/vdotest xfs defaults,x-systemd.requires=vdo.service 0 0
mount -a
df -Th
将系统的 调优配置文件 设置为 tuned 推荐的配置文件
' 查看推荐值 '
tuned-adm recommend
' 设置成推荐值 '
tuned-adm profile virtual-guest
' 查看是否配置完成 '
tuned-adm list
[ 编写脚本 ]
vim /usr/local/bin/file.sh
#!/bin/bash
find /usr -size -10M -perm -2000 -type f > /root/findfiles [ 谨记: -perm -2000 ] [ 这个 "-" 不能少!!!!!]
[ 增加执行权限 ]
chmod a+x /usr/local/bin/file.sh
----------------------------------
[ 执行脚本并验证 ]
sh /usr/local/bin/file.sh
cat /root/findfiles | xargs ls -l
----------------------------------
find /usr -size -10M ! -group root -type f > /etc/myfiles
find /usr -size +30k -size -50k -type f -perm -4000 > /etc/userfile [ 谨记: -perm -4000 ] [ 这个 "-" 不能少!!!!!]
知识点:
[ SUID=4755 SGID=2755 SBIT=1755 ]
注册表服务器:registry.network.example.com [ 用IP地址也行:172.25.250.1 ]
访问 注册表服务器
用户名**:admin**
密码**:root**
容器管理用户为 eldorado [ 以考试要求为准 如果没有则需要创建 ]
使用 rsyslog 镜像创建一个名为 logger 的容器
设置容器 开机自启
ps:若登录不上注册表 请使用 systemctl restart container-registry.service 命令
id eldorado [ 查看用户是否存在 : 无则创建 ]
ssh eldorado@servera [ 使用普通用户身份登录 ]
login [ 登录 注册表服务器 ]
search [ 搜索 所需镜像 ]
pull [ 提取 镜像 ]
images [ 查看 镜像 ]
禁止: su - 普通用户
利用注册服务器上的 rsyslog 镜像 创建一个名为 logger 的容器
面向 eldorado 用户 配置一个 systemd 服务
该服务命名为 container-logger 并在系统重启后自启
ssh root@servera [ 新开终端 使用 root用户 登录 ]
vim /etc/systemd/journald.conf [ 修改配置文件 ]
Storage=persistent [ 将日志文件永久存储至 /var/log/journal ]
systemctl restart systemd-journald
systemctl restart rsyslog [ 重启服务 ]
mkdir /home/eldorado/container-journal [ 创建目录 ] ---- 第二题内容
cp -a find /var/log/journal -name '\*.journal'
/home/eldorado/container-journal
chown -R eldorado:eldorado /home/eldorado/container-journal [ 修改目录权限 ]
ssh eldorado@servera [ 另一个终端 普通用户 ]
podman run -itd –name=logger -v /home/eldorado/container-journal:/var/log/journal/:Z [ 创建容器 ]
mkdir -p ~/.config/systemd/user
cd ~/.config/systemd/user
podman generate systemd --name logger --files –new [ 生成 systemd 文件]
podman stop logger
podman rm logger
loginctl enable-linger [ 开机自启 ]
systemctl --user daemon-reload
systemctl --user start container-logger.service
systemctl --user enable container-logger.service
systemctl --user status container-logger.service
reboot servera
ssh eldorado@servera [ 使用普通用户连接 ]
podman ps [ 验证 ]
总结:
四个步骤:
要求如下:
exit
ssh padora@servera
echo $PATH
mkdir /home/padora/.local/bin -p
cd /home/padora/.local/bin
vim rhcsa
#!/bin/bash
echo 'borough lirely excursion nephew scarce'
chmod +x rhcsa
'验证'
cd ~
rhcsa
联系客服