RHCSA notes

RHCSA

#重新练习
#在物理机shell执行
rhcsa8.sh

进入单用户模式修改root密码

# 重启机器,选择页面按e
# 在linux那一行后面添加console=ttyo rd.break
# ctrl + x 进入单用户模式,修改linux引导的参数
# 将sysroot根目录以读写形式重新挂载。 -o表示opition,rw表示读写,remount表示重新挂载。
mount -orw,remount  /sysroot 
# 进入root用户
chroot /systroot 
id
#  修改密码
echo migwhisk | passwd --stdin root
# 创建隐藏文件
touch /.autorelabel 
exit
exit

进入系统更改网络/主机名信息

# 修改网络
#方法1 直接修改现有的配置文件
nmcli con modify "Wired connection 1" ipv4.addresses 172.24.10.150/24 ipv4.gateway 172.24.10.100 ipv4.dns 172.24.10.250 ipv4.method manual connection.autoconnect yes
# 激活
nmcli con up "Wired connection 1"

# 方法2 直接添加一个新的配置文件
nmcli con add con-name static ifname eth0 type ethernet ipv4.addresses 172.24.10.150/24 ipv4.gateway 172.24.10.100 ipv4.dns 172.24.10.250 ipv4.method manual connection.autoconnect yes
# 激活
nmcli con up static
# 验证
ip a show eth0

# 修改主机名
hostnamectl set-hostname system.domain10.example.com
#验证主机名
hostnamectl
cat /etc/hostname

1.设置软件仓库

# rhcsa.repo信息
cat > /etc/yum.repos.d/rhcsa.repo << END
[baseos]
name = baseos
enable = yes //表示开启软件仓库
gpgcheck = 0
baseurl = http://xxxxx

[appstream]
name = appstream
enable = yes
gpgcheck = 0 
baseurl = http://xxxx
END

# 验证
yum repolist

2.配置selinux *

  1. 打开selinux
  2. semanage打标签和设置永久web上下文
  3. semanage放行port端口
  4. 重启http服务
  5. 防火墙开放82端口
# 把config中的SELINUX=permissive 改成enforcing
sed -i "s/SELINUX=permissive/SELINUX=enforcing/" /etc/selinux/config
# 检查是否更改
cat /etc/selinux/config |grep SELINUX
# 打开selinux
getenforce
setenforce 1
getenforce
#检查标签情况
ls -Z /var/www/html/index.html
# 使用semanage把html目录都打上标签
yum provides semanage
yum install policycoreutils-python-utils -y
semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
# 设置永久的web上下文
restorecon -RvF /var/www/html
# 放行selinux的安全端口
semanage port -a -t http_port_t -p tcp 82
semanage port -l |grep http

#重启httpd
systemctl restart httpd
systemctl enable httpd
# 此时本地已经可以访问web页面
curl localhost:82
# 临时放行端口
firewall-cmd --add-port=82/tcp
# 永久放行
firewall-cmd --add-port=82/tcp --per

# 将所有的放行都设置成永久(可选)
firewall-cmd --runtime-to-permanet

# 检查web
curl system1:82
curl system1:82/file1

3.创建用户账户

#名为sysmgrs的组
gorupadd sysmgrs -g 30000
#用户natasha ,作为次要组从属于sysmgrs
useradd -G sysmgrs natasha
#用户harry ,作为次要组从属于sysmgrs
useradd -G sysmgrs harry
# 用户sarah,无权访问系统上的交互式shell且不是sysmgrs的成员
useradd sarah -s /sbin/nologin
# natasha、harry和sarah的密码应当都是123
echo 123 | passwd --stdin natasha
echo 123 | passwd --stdin harry
echo 123 | passwd --stdin sarah

4.配置cron计划任务

# 以natasha身份运行
crontab -e -u natasha
# 每五分钟运行logger "EX200 in progress"(分时日月周)
*/5 * * * * logger "EX200 in progress"
# 在14:23分执行echo enjia
23 14 * * * /bin/echo enjia
#查看cron计划任务
crontab -l -u natasha

#检查cron服务
systemctl is-enabled crond
systemctl is-active crond

5.创建共享目录

  1. 创建目录
  2. 修改目录所属组
  3. 组成员权限变更,并设置所有权
#创建目录
mkdir /home/managers
# 该目录属于sysmgrs组
chgrp sysmgrs /home/managers
# 目录组成员拥有rwx权限,other没有权限
chmod g=rwx,o=--- /home/managers/
# 将/home/managers中创建的文件自动将组所有权设置到sysmgrs组
chmod g+s /home/managers
# 检查
ls -ld /home/managers/

6.配置NTP

  1. 在chrony中添加配置
  2. 重启服务
  3. 验证
# 在chrony.conf添加域名

echo "server host.domain10.example.com iburst" |tee -a /etc/chrony.conf
echo "allow 172.24.0.0/16" |tee -a /etc/chrony.conf

# 重启服务并开启开机启动
systemctl restart chronyd
systemctl enable chronyd

# 验证
systemctl status chronyd
chronyc sources
chronyc -n sources
ping -c1 host.domain10.example.com

7.配置autofs

# 安装nfs客户端
yum -y install nfs-utils
yum -y install autofs
vim /etc/auto.master
# 添加家目录的自动挂载
/rhel	/etc/auto.user1

# 在添加配置,把远端的目录以读写的形式挂载下来
cat > /etc/auto.user1 << EOF
user1	-rw		host.domain10.example.com:/rhel/user1
EOF

# 检查配置
grep rhel /etc/auto.master

cat /etc/auto.user1
ls /rhel -d

# 设置开机启动并立即启动
systemctl enable autofs --now
#检查启动情况
systemctl status autofs
# 重启配置
systemctl restart autofs
ls /rhel/ -d

# 验证
grep user1 /etc/passwd
df -hT /rhel/user1
su - user1
pwd
touch test
ls test

8.配置文件权限

cp /etc/fstab /var/tmp/fstab
chown root:root /var/tmp/fstab
# 所有人都没有写权限
chmod a-x /var/tmp/fstab
# 其他人只有读权限
chmod o=r-- /var/tmp/fatab
# 用户natasha能够读取和写入/var/tmp/fstab
setfacl -m u:natasha:rw /var/tmp/fstab
# 用户harry无法写入或读取/var/tmp/fstab
setfacl -m u:harry:--- /var/tmp/fstab

# 验证
su natasha 
cat /var/tmp/fstab
su harry
cat /var/tmp/fstab

9.配置用户账户

useradd user2 -u 3388
echo 123 | passwd --stdin user2

10.查找文件

mkdir dfiles
# 查找当user3所有的所有文件并将其副本放入/root/dfiles目录
# /表示从根目录开始查找
#cp -a 表示复制原有属性; {}表示前面查找的对象
find / -user user3 -exec cp -a {} /root/dfiles/ \;

1.创建目录
mkdir /root/myfiles
2.创建脚本
touch /usr/bin/repwis
3.脚本增加执行权限
chmod +x /usr/bin/repwis
4.脚本内容如下所示
#!/bin/bash
find /usr/ -perm /g+s -size +3M -size -5M -exec cp -a {} /root/dfiles/ \;
find /usr/ -perm /u+s -size +30k -size -50k -exec cp -a {} /root/dfiles/ \;
5.执行脚本
/usr/bin/repwis

11.查找字符串

查找文件/usr/share/rhel.xml中包含字符串re的所有行。将所有副本按原始顺序放在文件/root/files中

grep re /usr/share/rhel.xml > /root/files
cat files

12.创建存档(文件归档)

# 安装tar
yum provides tar
yum -y install tar
# 使用gzip的方式压缩
tar --help |grep gzip
tar -zcvf books.tar.gz /usr/local

# 安装bzip2
yum provides bzip2
yum -y install 
# 使用bzip2的方式压缩
tar -jcvf books.tar.bz2 /usr/local

# 检查文件类型
file books.tar.*

13.调整逻辑卷大小

  1. 扩容逻辑卷
  2. 动态调整卷属性
# 查看逻辑卷属性
lvs
# 查看卷组属性
vgs
#扩容ext4
lvextend /dev/vg-exam/vo1 -L 180M
#扩容xfs
lvextend /dev/vg-exam/vo2 -L 180M

# 动态调整
# ext4 (指定块设备)
resize2fs /dev/vg-exam/vo1
# xfs (指定挂载点)
xfs_growfs /mnt/vo2

# 验证
lvs
df -hT /mnt/vo1 /mnt/vo2

14.添加交换分区

  1. 新建指定大小的分区
  2. 修改分区属性为swap类型
  3. 格式化swap分区,记录uuid
  4. 添加swapx信息到开机自挂载
  5. 加载新挂载的swap分区
free -m
# 添加新分区并修改分区类型
fdisk /dev/vdb
n
p
2

+567M
t
2
82

w

# 查看新添加的分区
ls /dev/vdb*
partprobe
# 格式化
mkswap /dev/vdb2
# 添加swap信息
vim /etc/fstab
UUID=xxxxx swap swap defaults 0 0
# 使用命令加载一下永久挂载的新添加部分
swapon -a
free -m

15.创建逻辑卷*

  1. 新建分区
  2. 新分区加到物理卷
  3. 创建卷组
  4. 创建逻辑卷
  5. 格式化
  6. 永久挂载
  7. 加载挂载
1. 磁盘分区
fdisk /dev/vdb
n
p
3
+1G
w

# 检查
ls /dev/vdb*

2. 创建物理卷
pvcreate /dev/vdb3
# 检查
pvs

3. 创建卷组
vgcreate -s 20M npgroup /dev/vdb3
vgs

4. 创建逻辑卷
# 一个单元20M,45个就是900M
lvcreate -n np -l 45 npgroup
# 检查
lvs

5. 格式化
mkfs.ext3 /dev/npgroup/np

6. 创建挂载点
mkdir /mnt/np
ls -ld /mnt/np

7. 永久挂载
lsblk
# 添加挂载信息
vim /etc/fstab
/dev/npgroup/np /mnt/np ext3 defaults 0 0
mount -a 
df -hT

16.创建VDO卷

  1. 安装vdo
  2. 创建vdo
  3. 格式化
  4. 永久挂载(注意使用网络卷)
1. 安装vdo
yum -y install vdo
2. 创建vdo
ls /dev/vdc*
vdo create --name=vdoname --device=/dev/vdc --vdoLogicalSize=80G 

3. 格式化vdo为xfs文件系统
mkfs.xfs /dev/mapper/vdoname 

4. 文件系统挂载
mkdir /vbark

# 新增挂载点,持续性挂载
vim /etc/fstab
# vdo不能直接使用defaults的参数
# _netdev表示把该设备当作了网络设备上使用的卷
/dev/mapper/vdoname /vbark xfs defaults,_netdev 1 2

mount -a 
df -hT

17.配置系统调优

  1. 查看当前状态
  2. 关掉调优
  3. 查看推荐调优类型
  4. 切换到最优
  5. 检查
# 查看当前调优状态
tuned-adm list
#关掉调优
tuned-adm off
# 查看当前最优调优是哪一种类型
tuned-adm recommend
# 调优到最优
tuned-adm profile virtual-guest
# 检查
tuned-adm list

18.容器

  1. ssh连接到普通用户
  2. 配置仓库
  3. 拉镜像
  4. 切换到root用户修改journal配置
  5. 复制文件并切换成用户的所有权
  6. 运行容器(注意selinux)
  7. 进入容器检查挂载情况
  8. 在用户家目录创建自启动容器的目录
  9. 初始化容器systemd文件到该目录
  10. 修改文件名
  11. 删除容器
  12. 打开普通用户自定义systemd文件的权限
  13. 以用户的方式重新加载systemd文件
  14. 以用户的方式自启动该systemd文件
  15. 检查容器启动情况
考试的时候可能不会告诉你容器镜像具体的url链接,但是会告诉你镜像的名字,你只需要先podman login登陆,然后使用podman search rlogserver搜索一下镜像的url就好了,然后再使用podman pull拉取镜像就好了。
第二个容器会出现的问题就是你会无法发现/var/log/journal目录,此时你只需要修改配置文件/etc/systemd/journald.conf,将Storage参数与更改成Storage=persistent,然后使用命令systemctl restart systemd-journald重启systemd-journald即可(修改配置文件,重启服务都要用root来操作)
容器题目中要求将/var/log/journal目录下的以.journal结尾的文件都拷贝到/home/elovodo/container_journal/,此操作记得用root用户拷贝,别还傻了吧唧的用普通用户拷贝,那样会权限不够,考试的时候灵活一点,

# 使用elovode连接server
ssh elovodo@xxx

# 配置容器镜像仓库registry
podman login http://xxxxx:5000

# 拉取镜像
podman pull xxxxx/xxxx

# 将考试要求的文件拷贝到指定目录中作为容器的之就行挂载存储
# 拷贝目录
cp -a /var/log/journal/* /home/elovodo/container_journal/
# 拷贝隐藏目录 
# []里面表示匹配一个字符, !.表示非. , (这样可以避免复制.. 会把上级目录也复制进来)
cp -a /var/log/journal/.[!.]* /home/elovodo/container_journal/

# 运行容器
podman images
# 容器持久性挂载
# :Z 可以让容器自动解决SElinux权限问题
podman run -itd -v /home/elovodo/container_journal:/var/log/journal:Z --name container_logserver [image]

find /var/log/journal/ -name "*.journal" -exec cp -a {} /home/elovodo/container_journal/ \;
chown -R elovodo:elovodo /home/elovodo/container_journal/


# 进入容器检查
podman ps
podman exec -it container_logserver bash

# 查看容器日志文件
ls /var/log/journal/gzytest -a
ls /var/log/journal/.gzytest -a
exit

# 在elovodo家目录下创建系统自启目录
mkdir ~/.config/systemd/user -p
# 此时文件是空的
ls -R .config/
cd .config/systemd/user/
ls
# 创建普通用户的systemd配置文件
podman generat
e systemd --new --files --name container_logserver
# 查看生成的systemd文件
cat container-container_logserver.service

# 修改systemd文件
mv container-container_logserver.service container_logserver.service

# 停掉之前启动的容器
podman ps -a
podman stop container_logserver
podman rm container_logserver

# 让普通用户具备自定义自己systemd服务的权限
loginctl enable-linger
# 以user用户重新加载systemd
systemctl --user daemon-reload
# 设置开机启动并立即启动
systemctl --user enable container_logserver.service --now
# 查看服务状态
systemctl --user status container_logserver.service

#检查容器启动情况
podman ps

#必须保证system1重启之后,使用elovodo用户登录之后,看到容器正常启动

# 要求修改umask让elovodo用户创建普通文件的权限为rw-------,让普通用户创建目录的权限为rwx
vim ~/.bashrc
umask 0077

修改密码有效期

chage -M 120 -m 7 glsgreat

配置超级用户

visudo

glsgood ALL=(ALL)       NOPASSWD: ALL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值