admin 管理员组文章数量: 887031
rhcsa8学习
物理机foundationX:172.25.254.X/24 使用kiosk/redhat 登录。root/Asimov
所有虚拟机除了classroom之外,都可以登录,root/redhat student/student。
在物理机foundationX上控制虚拟机,命令如下:
rht-vmctl start all
rht-vmctl status all
rht-vmctl fullreset servera
注意:classroom虚拟机(默认开启),是单独管理的,这里的all是不包含classroom虚机的。
在物理机查看环境,[kiosk@foundation0 ~]$ cat /etc/rht
先清空当前环境,[kiosk@foundation0 ~]$ rht-clearcourse 0
再切换rh134环境,[kiosk@foundation0 ~]$ rht-setcourse rh134(rh124)
验证环境是否切换成功,[kiosk@foundation0 ~]$ cat /etc/rht
每次切换环境后都先开classroom,[kiosk@foundation0 ~]$ rht-vmctl start classroom
再开启所有虚拟机all,这里的all不包含classroom,[kiosk@foundation0 ~]$ rht-vmctl start all
查看虚拟机状态,[kiosk@foundation0 ~]$ rht-vmctl status all(classroom)
彻底重置虚拟机,[kiosk@foundation0 ~]$ rht-vmctl fullreset all(classroom)
ssh有问题或ping不通就重置哪台虚拟机(reset普通重置fullreset彻底重置)。
重置了之前做的东西都被清空掉的,谨慎重置。
tab键补全命令,按一次补全唯一命令,按两次显示所有命令。
Ctrl + l 清屏,Ctrl + c 中断程序,Ctrl + d 退出终端,Ctrl + a 光标回到命令行头,Ctrl + e 光标回到命令行尾。
反斜杠(\),换行写命令,在另一行上继续延长命令。求帮助,命令 --help 或 man 命令
/dev/null黑洞、垃圾回收站,不显示过程。&>/dev/null 不在终端输出任何信息。
2>/dev/null忽略错误消息,将命令执行过程中的错误信息重定向到黑洞/dev/null。
touch 创建已存在的文件时不会覆盖文件内容而是更新了文件的最后修改时间,stat查看文件的时间信息。
cp 复制文件时加-p保留文件原有属性,-a保留selinux属性。 file 文件,查看文件的类型。
让普通用户拥有root权限执行该命令,# visudo (相当于 vim /etc/sudoers)
在100行位置加,用户在什么位置有执行哪些命令(绝对路径)权限
然后这个用户运行命令前加个sudo就行,如$ sudo useradd user01
或使用在/etc/sudoers.d目录下补充文件,如用户user01获得sudo权限,创建此文件/etc/sudoers.d/user01,文件里面内容为,
user01 ALL=(ALL) ALL
如用户组group01获得sudo权限,创建此文件/etc/sudoers.d/group01,文件里面内容为,
%group01 ALL=(ALL) ALL
也可设置允许用户在不输入密码时能以其它用户身份执行命令,
user01 ALL=(ALL) NOPASSWD: ALL
id 用户 查看用户信息,判断有无该用户
-L lock 锁住用户 -U unlock 解锁用户 锁住解锁用户只能usermod使用
useradd -s /sbin/nologin 指定shell类型
-u:指定uid,-s:指定shell,-g:指定主要组,-G:指定附加组,-c:备注信息,-d:指定家目录
userdel -r 删除用户同时删除用户家目录
用户文件/etc/passwd,用户组文件/etc/group,密码文件/etc/shadow
chage -l user01 查看用户密码情况 求帮助:man chage 或chage --help
chage -d 0 user01 用户首次登入后强制修改密码
密码最短期限设为10天,chage -m 10 user01
密码最长期限设为30天,chage -M 30 user01
# find / -name 名字 -type f/d
-iname 忽略大小写 -maxdepth 数字 设置查找的目录深度
大小 -size kMG 小k大M大G
搜索大小超过10M的文件,find -size +10M
搜索大小小于10M的文件,find -size -10M
-mmin 分钟数 根据修改时间搜索文件
find / -mmin +120 120分钟以前修改的文件
find / -mmin -120 过去120分钟内修改的文件
find / -user root -group mail 搜索u为rootg为mail的文件
删除文件看文件所在目录有无w权限,文件有x危险,目录有w危险。
chmod u\g\o\a +\-\=权限 文件 (+R 目录)
=是重新授予权限(赋值权限),会覆盖之前的权限的,chmod 421 文件
chmod +x file 给文件ugo即a所有人加了x权限
修改文件拥有者、所属组
chown 拥有人:拥有组 文件名 同时修改文件拥有者和所属组
chgrp 拥有组 文件名 只修改文件所属组
suid(u+s)4777 有文件拥有者权限(命令用)
guid(g+s)2777 新子文件继承目录的拥有组(目录用)
o+t 1777 防止别人误删除公共目录(目录用)
原来有x,是小写s\t
原来无x,是大写S\T
文件权限涉及到具体用户名、具体组名(文件权限颗粒化),用文件acl设置,chmod 针对ugo设置。
# setfact -m u:mpp:rw 文件名 # setfact -m g:test:r 文件名
用# getfacl 文件名 查看文件acl设置权限,而不是用ls查看,通过ls查看有+(加号),则此文件被设置了acl
-b 删除此文件设置的所有的acl
-x 删除此文件设置的具体某条acl # setfacl -x u:mpp 文件名
一个进程有多个线程,线程多运行快,线程是cpu最小调度单元。
ps -ef 或 ps -aux查看进程详情,pidof 进程名 只查看进程PID
kill pid (-9强制杀掉) killall 进程名
kill -1 重新读取配置文件,kill -9 $(pidof vsftpd) 或 kill -9 `pidof vsftpd`
&把进程放到后台管理,tail -f /etc/passwd &
通过jobs看后台有什么进程,找到索引号。
kill %索引号,kill -9 %1
uptime 显示系统平均负载
lscpu 显示有多少个cpu
nice值约小优先级越高,nice值可更改。-20 ~ 19,nice默认值是0
系统调优,用tuned进程调优,/etc/tuned/tuned-main.conf是tuned的配置文件。
tuned进程通过已经预配置的各种profile文件来调优,每个profile代表了不同的工作负载。
也可自定义profile文件(/usr/lib/tuned里面保存着各种profile文件),静态调优动态调优可在/etc/tuned/tuned-main.conf配置文件设置。
# tuned-adm list 列出所有的profile
# tuned-adm active 查看当前使用的profile
# tuned-adm profile 具体的profile名称 切换profile
先推荐再切换profile
# tuned-adm recommend 查看推荐使用哪种profile
# tuned-adm profile 具体的profile名称 切换profile
ssh默认22端口,目标主机重装系统导致ssh不上,服务器是新密钥,客户端还是旧密钥。
时间同步服务chronyd,在/etc/chrony.conf配置文件中配置
server NTP服务器的ip或主机名 iburst
如 server classroom.example iburst
重启服务,# systemctl restart chronyd
# timedatectl 查看当前时间
如何修改同步时间:
1、修改系统时区
timedatectl list-timezones 查看时区信息 /搜索
timedatectl set-timezone Asia/Shanghai
2、开启网络时间同步功能
timedatectl set-ntp 1
3、安装时间同步程序
yum install -y chrony
systemctl start chronyd
打包并压缩,# tar [选项] 压缩后的压缩包名称 要压缩的文件或文件夹
-cf :对文件或文件夹进行打包 (解压把c换成x,解压到指定路径,-C 指定路径)
-v :显示压缩进度
-z :用gzip压缩工具把打包后的文件压缩为.tar.gz 这个用的多
-j :用bzip2压缩工具把打包后的文件压缩为.tar.bz2
-J :用xz压缩工具把打包后的文件压缩为.tar.xz
安装 # rpm -ivh 软件名.rpm 软件包的完整的名字
卸载 # rpm -e 软件名
查询 # rpm -q 软件名 # rpm -qa | grep sshd
# which ifconfig 查看命令完整路径
# rpm -qf /usr/sbin/ifconfig 根据命令完整路径查看软件安装包
# rpm -ql net-tools软件包,查看软件包有哪些文件
安装 # yum install 软件名 -y
卸载 # yum remove 软件名 -y
更新 yum update
列出软件包 yum list
/etc/yum.repos.d/local.repo
[仓库名称]
baseurl:指向仓库url路径
gpgcheck=0 不校验,是否开启gpgcheck校验
Linux中的计划任务crond,在指定的时间执行指定的操作
分 时 日 月 周 执行的命令
0-59 0-23 1-31 1-12 0-7
# crontab [选项]
-l :list,显示目前已经设置的计划任务
-e :edit,编辑计划任务列表
计划任务就是一个文件,使用vim编辑器编辑计划任务的文件
-u:user,指定用户名,如果不指定表示当前用户
-r:remove,删除计划任务列表
问题:计划任务文件具体保存在哪?
答:/var/spool/cron/用户名称,如果使用root用户编辑计划任务,则用户文件名为root
计划任务的黑名单文件/etc/cron.deny
把要禁止的用户名单,加入黑名单文件,一行只能写一个
白名单文件的路径/etc/cron.allow
白名单文件需要手工创建。白名单优先级高于黑名单,如果一个用户同时存在两个名单文件中,会被默认允许。
子网掩码一般24位,255.255.255.0 192.168.10.1/24
ping -c 数字 ip ping几次 如ping -c 3 ip 是ping3次
查看网卡的ip信息,ip a 或ifconfig
设置主机名,# hostnamectl set-hostname servera.example
或在配置文件/etc/hostname中直接修改主机名
ip地址静态绑定主机名,绑定后可ping主机名,/etc/hosts配置文件,ip地址 长主机名 短主机名
如 192.168.10.1 servera.example servera
在DNS配置文件/etc/resolv.conf中配置dns服务器的ip地址,
如 nameserver 192.168.10.10
# route -n 查看默认网关,UG的为默认网关
# nmcli con show 显示连接名,连接名就是网卡名,ifcfg-连接名
利用nmcli添加新连接:
nmcli connection add con-name rhcsa ifname eth0 ipv4.addresses 192.168.100.11/24 type ethernet
利用nmcli修改已存在的连接,输w按tab键提示连接名,
# nmcli connection modify
“wired connection 1q” ipv4.addresses 172.25.250.100/24 ipv4.gateway 172.25.250.1 ipv4.dns 8.8.8.8 ipv4.method manual connection.autoconnection yes
激活生效,# nmcli connection up w(输w按tab键提示连接名)
或重新加载配置文件,# nmcli con reload
修改网卡配置文件后重新读取配置文件,再下架和上架网卡
# nmcli connection reload
# nmcli connection down ens160
# nmcli connection up ens160
关于防火墙,rhel8中使用的防火墙是firewalld进程
firewalld预定义了很多zone区域,当某个流量进入到防火墙时,会将该流量注入到某个zone中,然后判断该zone有无对该流量的放行规则。
如何判断流量进入到哪个zone区域?
1、如果该流量的源地址和某个zone区域有关联,则此地址就进入该zone
2、如果该流量进入的接口(网卡)和某个zone区域有关联,则此地址就进入该zone
3、进入到默认zone,默认zone为public,默认zone可更改。有关联就进入指定zone,没关联就进入默认zone
# firewalld-cmd --get-default-zone 查看默认zone,系统默认为public
# firewalld-cmd --set-default-zone home 设置默认zone为home
# firewalld-cmd --get-zones 查看所有zone
# firewalld-cmd --add-source=192.168.20.0/24 --zone=work 网段关联zone
# firewalld-cmd --remove-source=192.168.20.0/24 --zone=work 解除关联
# firewalld-cmd --add-interface=eth0 --zone=home 接口关联zone
# firewalld-cmd --remove-interface=eth0 --zone=home 解除关联
# firewalld-cmd --add-service=ftp --zone=work 指定zone添加通过服务,不加--zone=work就是默认zone
# firewalld-cmd --add-port=21/tcp --zone=work 指定zone添加通过端口,端口要加协议
# firewalld-cmd --remove-port=21/tcp --zone=work 所有移除都是remove
# firewalld-cmd --reload 重新加载防火墙配置
所有firewalld-cmd命令配置加个--permanent持久化,将临时配置变为永久配置
selinux是系统额外的安全层,主要功能:确定哪个进程能够访问哪些文件、目录、端口的一组安全策略规则。
一旦启动了selinux功能后,selinux会为每个文件、目录、进程、端口分配唯一的selinux上下文,利用该上下文能够确定哪个进程去访问这些资源(file ,directory,port等)
使用# ls -Z 来查看文件或目录的selinux上下文,selinux上下文中,只关注第三个字段,type类型字段。
/根下的目录的selinux上下文类型都是default_t,mkdir /rhce ls -dZ /rhce
修改selinux上下文的方式:
- chcon 直接更改,但不会保存到数据库中。 重启不还原只是不保存到数据库
mkdir /rhce ls -dZ /rhce
# chcon -t httpd_sys_content_t /rhce
# restorecon /rhce 重新读取数据库的值,又还原了selinux上下文类型default_t
# restorecon 读取数据库的值,通过数据库的值来修改selinux上下文
# semanage fcontext -a添加 -d删除 -t httpd_sys_content_t '/rhce(/.*)?' 修改保存到数据库
# restorecon /rhce 通过数据库值来修改,读取数据库selinux上下文类型
cp -p保留权限,-a保留selinux属性
SELINUX的三种模式(在/etc/selinux/config修改,改完重启电脑才生效)
- enforcing 强制打开
- permissive 警告模式
- disabled (不安全)
selinux对端口号做标签(selinux上下文),
# semanage port -l 查看所有标签(selinux上下文)
# yum install httpd -y
# vim /etc/httpd/conf/httpd.conf 将http的80改成82端口
# systemctl restart httpd 重启会报错
通过# journalctl -xe查看日志原因是selinux不让绑定(考试原题没有这个日志提示,命令要背下来)
# semanage port -a -t http_port_t -p tcp 82 将82端口绑定http的标签值
semanage port -a -t <selinux上下文> -p <协议> <端口号>
-a 添加 -d 删除
# semanage port -l |grep http 查看http标签(selinux上下文)
# systemctl restart httpd
# lsblk 查看磁盘大小,包含挂载和不挂载的
# df -Th 查看已挂载的磁盘,-T查看的内容中有文件系统类型
# blkid 查看系统类型和设备的uuid号
# lsof 查看当前挂载点有哪些进程在用
# cat /proc/partitions 查看磁盘分区情况(推荐使用)
# fidsk -l /dev/vdb 查看磁盘分区情况
磁盘disk,先分区再格式化成想要的文件系统类型,分区是为了方便管理。
MBR分区方式:小于2TB,4个主分区(3主1扩展)
MBR:512字节,一个扇区那么大。
MBR:446+64(分区记录表)+2=512
MBR格式的硬盘,最大只能分4个主分区。一个主分区占用16字节。
扩展分区:不能直接使用,它存在的意义是为了继续分逻辑分区。
逻辑分区:属于扩展分区,最终能够格式化和使用,必须是从5号开始。
扩展分区属于主分区是1到4,逻辑分区从5开始。扩展分区一定要大于逻辑分区,不能等于逻辑分区。
GPT分区方式:大于2TB,128个主分区。
使用fdisk来分区,fdisk /dev/vdb 按m求帮助
n 添加新分区
p 主分区 1 从1号开始,起始默认扇区直接回车,结束扇区加大小(+1G,有加号)
First sector 起始柱面默认回车
Laster sector 结束柱面 +1G ,Laster sector 结束柱面直接回车就是把剩余大小都给它
P 打印分区信息,w 保存退出,q直接退出
将分区格式化成想要的文件系统。vfat文件系统能在Linux、Windows和Mac系统之间共享文件。
# mkfs.ext3 /dev/vdb1
# mkfs. 按两次tab会列出所有文件系统
临时挂载 mount /dev/vdb1 挂载点 查看挂载情况 df -h
在当前挂载点不能解挂载,# umount 挂载点
永久挂载vim /etc/fstab 后要用mount -a 刷新
echo "/dev/vdb1 /mnt xfs defaults 0 0" >> /etc/fstab
设备名/dev/vdb1 挂载点/mnt 文件系统类型xfs defaults 0 0
修改/etc/fstab 后用# mount -a 刷新
# free -m 查看内存情况 # vmstat 2 10 监控内存等性能,2秒更新1次一共10次
swap交换分区,当物理内存(实际内存)不足时,可充当内存使用,swap约等于实际内存大小。
创建swap分区,使用fdisk来分区,fdisk /dev/vdb 按m求帮助
n 添加新分区
p 主分区 1 从1号开始,起始默认扇区直接回车,结束扇区加大小(+1G,有加号)
First sector 起始柱面默认回车
Laster sector 结束柱面 +1G ,Laster sector 结束柱面直接回车就是把剩余大小都给它
P 打印分区信息,w 保存退出,q直接退出
分区后格式化文件系统为swap类型,# mkswap /dev/vdb5
加载:swapon /dev/vdb5
持久挂载vim /etc/fstab 后要用mount -a 刷新 注意这里swap挂载点无/
/dev/vdb5 swap swap defaults 0 0
修改/etc/fstab 后用# mount -a 刷新
LVM逻辑卷在线扩容,LVM的组件:
1、物理设备:块设备,RAID阵列,分区
2、物理卷(PV):将物理设备格式化成物理卷
物理卷是将物理设备划分为固定大小的PE块(默认4M),物理卷由若干个4M的PE块组成。
3、卷组(VG):提供存储池
4、逻辑卷(LV):通过从卷组池中来提供空间。
创建LVM逻辑卷:
1、创建出物理设备(分区)
2、创建物理卷PV:# pvcreate vdb{6,7,8} 通过# pvs 或# pvdisplay查看pv信息
3、创建卷组VG:# vgcreate rhcsa(卷组名) /dev/vdb6 /dev/vdb7
创建哪个卷组要有卷组名,这个卷组来自哪些物理卷
通过# vgs 或# vgdisplay查看vg信息,vgdisplay可查看PE块大小
创建卷组VG时改变PE块大小, 选项:-s 修改PE块大小
# vgcreate rhcsa /dev/vdb6 -s 16M
4、创建lv:# lvcreate -n 要创建的逻辑卷名字 -L 指定逻辑卷大小
# lvcreate -n lv1 rhcsa -L 200M 创建逻辑卷lv1大小为200M,这个逻辑卷来自rhcsa卷组
5、格式化逻辑卷成想要的文件系统,# mkfs.ext4 /dev/rhcsa/lv1
6、永久挂载vim /etc/fstab 后要用mount -a 刷新 (要先创建挂载点/test)
/dev/rhcsa/lv1 /test ext4 defaults 0 0
修改/etc/fstab 后用# mount -a 刷新
# df -h 查看挂载情况 发现其会变名字/dev/mapper/rhcsa-lv1 卷组-逻辑卷
在线扩容,先扩卷组VG,再扩逻辑卷LV。如果卷组VG本身不够,则应该先将卷组VG扩大。
扩卷组VG,# vgextend rhcsa /dev/vdb8 #vgs查看vg信息
扩逻辑卷LV,# lvextend /dev/rhcsa/lv1 -L 300M
新扩容的也要同步格式化文件系统,在扩大LV时,需要及时的扩大文件系统,
同步文件系统,# resize2fs /dev/rhcsa/lv1
此命令只能用于ext类型
如果是xfs类:xfs_growfs同步文件系统
2个VG卷组合并的前提是,1、PE块一样 2、还没有做成逻辑卷的卷组
# pvmove /dev/vdb6 把PE移出 # pvs查看
# vgreduce rhcsa /dev/vdb6 从卷组中移除物理卷
# pvremove 删除pv属性 最后拔出硬盘
VDO(kvdo、uds): 节约磁盘空间,提高利用率。
vdo工作原理:
1、过滤0数据
2、利用uds内核模块,删除冗余的数据
3、利用kvdo内核模块,压缩数据。
物理机的物理磁盘:vdo = 1:1
虚拟机的物理磁盘:vdo = 1:10
创建vdo卷的设备,必须是一个未使用的磁盘。
1、安装vdo软件 # yum install vdo -y
2、创建vdo设备 用# man vdo /example找到这个创建命令复制过来使用
# vdo create --name=vdo1 --device=/dev/vdd --vdoLogicalSize=50G
/dev/vdd是5G,所以vdoLogicalSize是50G,虚拟机的物理磁盘:vdo = 1:10
敲完创建命令,创建完后会告诉你设备路径/dev/mapper/vdo1
3、格式化(一定要加-K 快速格式化) # mkfs.xfs -K /dev/mapper/vdo1
4、永久挂载vim /etc/fstab 后要用mount -a 刷新 (要先创建挂载点/vdo)
用# man vdo /example找到这个,x-systemd.requires=vdo.service
# vim /etc/fstab 注意要写这个,x-systemd.requires=vdo.service
/dev/mapper/vdo1 /vdo xfs defaults,x-systemd.requires=vdo.service 0 0
修改/etc/fstab 后用# mount -a 刷新
# df -h 查看挂载情况
网络存储,先搭建nfs-server(c/s架构)(添加enable开机自启动,改配置文件后要restart重启服务)
nfs:linux和类unix之间的网络共享
软件包:nfs-utils
服务名:nfs-server
在servera上部署nfs服务器,在workstation上进行网络挂载访问(有rw权限)
在nfs配置文件/etc/exports(是空的配置文件)中设置共享文件/test
共享文件路径 允许访问的客户端(权限)
/test *(rw)
配置文件完后重启服务,# systemctl restart nfs-server
客户端挂载方式:(挂载点/redhat)
注意:当用户以root身份挂载共享目录时,nfs会用一个默认的特殊权限去把root身份转换为一个匿名用户nobody(普通账户),
root新建目录权限是755文件是644,普通账户为o其它用户,其权限为5,要# chmod o+w /test
1、临时的(runtime),# mount servera:/test /redhat
2、持久的(persistent),写进/etc/fstab文件中,
servera:/test /redhat nfs defaults 0 0
/etc/fstab持久性挂载后要# mount -a 刷新下
# df -h 查看挂载情况
3、自动挂载(autofs)
自动挂载形式不用先建立挂载点,会自动建立挂载点的。
当触发(进去)挂载点时,才会将设备挂载到挂载点上。
软件包:autofs 服务名:autofs
在客户端挂载,在客户端安装autofs
autofs的2个配置文件,(多级挂载)
/etc/auto.master(主配置文件):定义第一级挂载点/misc和次要配置文件auto.misc
/etc/auto.misc(次要配置文件):定义末级挂载点cd和最终要挂载的设备/dev/cdrom
当进入到/misc/cd目录就触发自动挂载# mount /dev/cdrom /misc/cd
例,将servera:/test挂载到/redhat/rhcsa
/etc/auto.master(主配置文件):定义第一级挂载点/redhat和次要配置文件auto.misc
/etc/auto.misc(次要配置文件):定义末级挂载点rhcsa和最终要挂载的设备servera:/test
当进入到/redhat/rhcsa目录就触发自动挂载# mount servera:/test /redhat/rhcsa
直接挂载(一级目录)
主配置文件里面定义第一级挂载点/-
次配置文件里面定义末级挂载点/win(用绝对路径写挂载路径)
多级挂载也可写成直接挂载形式
主配置文件里面定义第一级挂载点/-
次配置文件里面定义末级挂载点/redhat/rhcsa(用绝对路径写挂载路径)
containers容器,在rhel8中默认使用的容器技术叫podman
旧时代:业务跑在物理服务器节点中。
虚拟化时代:允许物理资源利用率最大化。
虚拟机很消耗物理资源,虚拟机启动慢因为每个虚拟机都是个完整的操作系统环境。
容器时代:解决了虚拟化的问题,因为每个容器运行时,不会独占操作系统环境,共享同一个物理节点的操作系统环境(库、内核...),极快。
从物理机角度看,每个运行的容器,就是一个进程。虚拟化、容器化目的都是为了运行业务(应用app)
不同虚拟机要运行在不同操作系统之上,容器共用一个操作系统。
容器核心技术:
-cgroup 控制组资源,管理资源的利用(为进程分配固定资源)
-namespace 命名空间,隔离资源(隔离进程)
-selinux 安全管理
镜像image,一组打包的文件(应用程序本身、操作系统等各种依赖环境)
镜像是容器的基石,目的是为了跑应用,之前应用是部署在物理机上,现在是部署在容器上,
容器运行时runtime:运行容器的环境
镜像是分层结构的,只有最顶层是可以写的,其它都是只读的,其优点是可以共享的。
一般底层镜像都是操作系统,镜像一般是以base image开头。
podman优点:支持非root用户,更加安全,podman更加简洁。
podman缺点:普通用户不能放行1024以下端口。
镜像是在一个仓库里面,镜像命名,仓库名称/组织名称/具体镜像名称:tag (tag是版本名称,默认为latest)
podman pull 下载镜像,一层层下载
podman run 利用镜像运行容器
选项, -it -i交互式 -t sehll终端如/bin/bash,加了-t后面要空格加/bin/bash
-d 后台运行该容器(一般用于开启守护进程的容器)
--name 给容器起名字(容器名不能重名)
-p 端口映射 hostport:containerport
podman port -a 查看端口映射情况
防火墙中把物理机端口放行,firewall-cmd --add-port=8000/tcp
-e 指定变量,镜像里面接口预留了这些变量名的
--rm 运行完后删除该容器,不加的话运行完退出容器后容器还在的
-v 存储映射 hostdir:containerdir:Z Z 重新标记selinux上下文
容器里面数据随着容器死掉而丢失,容器里面数据是临时的。
-v 将物理机目录映射到容器里面,持久化存储。验证映射是否成功,物理机有内容容器也有内容。
做实验,在workstation敲 lab containers-basic start
考试用student身份ssh servera做题,考试时podman软件包container-tools安装过的,不用装。
sudo yum module install container-tools -y
1、登录镜像仓库,podman login registry.lab.example admin/redhat321
2、下载镜像,podman pull registry.lab.example/rhel8/httpd-24:latest
podman images 查看镜像
3、利用镜像运行容器,podman run --name myweb -it registry.lab.example/rhel8/httpd-24:latest /bin/bash
进去容器后就是刚才-t给的/bin/bash终端界面,用id 查看当前用户信息,exit 退出
4、查看运行状态的容器(up状态)podman ps
查看所有容器(包含所有状态) podman ps -a
管理镜像,镜像放在仓库中,
root用户仓库配置文件,/etc/containers/registries.conf
非root用户仓库配置文件,先在非root用户创建目录/home/.config/containers
再把/etc/containers/registries.conf复制过来
podman info 查询镜像从哪个仓库下载的
podman rmi 删除已经下载的镜像
podman rm 删除容器,-f 强制删除正在运行的容器
podman kill 杀掉容器
podman stop start restart
podman exec 在容器外面运行容器里面的命令,
后台运行容器myweb3, podman run -d --name myweb3 -it registry.lab.example/rhel8/httpd-24:latest /bin/bash
podman exec myweb3 id root 看容器的root信息
进去容器里面运行容器命令,podman exec -it logserver /bin/bash
容器里启动systemd服务,systemctl restart systemd-journald
让容器伴随着物理机开机而启用,像管理服务一样管理容器,让容器变成服务。
systemctl start sshd,能用systemctl启动一个服务是因为其读取了sshd的单元文件sshd.service
(/usr/lib/systemd/system/sshd.service)
想容器被systemctl接管,为容器创建单元文件就行。
使用systemd接管容器服务
原理:为非root用户的容器创建user级别的systemd 单元配置文件。
如何为非root用户的容器创建user级别的systemd 单元配置文件呢?
1、开启一个容器,podman run
2、为该普通用户,创建一个目录。该目录是为了存储单元配置文件,~/.config/systemd/user
3、进入该目录后生成配置文件,podman generate systemd --name myweb3 --files --new
运行完后可查看是否生成配置文件
4、删除容器,podman rm 容器名 后面容器由systemd管理,把第一步podman管理的容器删除
正在运行的容器得先podman stop再删除,-f 强制删除正在运行的容器
5、使用systemd user 各种命令来管理容器
先把systemd自己重启下,systemctl --user daemon-reload
systemctl --user start container-web.service
开机自启动敲2条命令,loginctl enable-linger systemctl --user enable container-web.service
rhcsa8考试
node1、node2考试时密码会很复杂,没有指定用户的话就用root登入做题,这个密码就是root密码
考题在红色帽子里面,做题时通过物理机终端ssh连接到node1、node2做题(便于复制粘贴)
node1、node2做题后都要保证能重启成功,且重启后所有配置和服务有效(设置服务开机自启动)
注意:切换普通用户做题,千万不能直接su切换,一定要退出到workstation再以这个普通用户身份ssh登入做题,如ssh tom@node1
做题环境用virt-manager调出控制台图形界面(考试可直接打开桌面控制台选择node1选console进来)
考试须知
第一题,编辑网卡信息
Manual(静态) ip /24掩码 网关 DNS 主机名
配完后还是蓝色屏幕就鼠标点击蓝色屏幕再回车,
出现命令行直接敲reboot不用管命令出来没,没有卡住的只是隐藏在下面看不到,敲完reboot就回车。
route -n 带UG的是网关
cat /etc/resolv.conf 输出DNS配置文件
hostnamectl 查看主机名
进入node1控制台终端,用# nmtui 调出图形化界面点edit编辑网卡信息,设置静态IP(manual)和主机名等信息。做完第一题就reboot,后通过物理机终端ssh连接到node1来验证网卡信息是否修改成功,后面题目也通过物理机终端ssh连接到node1来做题(便于复制粘贴)
命令行实现:
[root@node1 ~]# nmcli connection show
[root@node1 ~]# nmcli connection modify "Wired connection 1" ipv4.addresses
172.25.250.100/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254
ipv4.method manual connection.autoconnect yes
[root@node1 ~]# nmcli connection up "Wired connection 1"
[root@node1 ~]# hostnamectl set-hostname node1.domain250.example
第二题,配置yum源
先把原有的删除,先cd /etc/yum.repos.d/ ,再 rm -rf *
没有名字要求,就随意命名但要以.repo结尾,如# vim test.repo
[base]
baseurl=http://content.example/rhel8.2/x86_64/dvd/BaseOS
gpgcheck=0
[app]
baseurl=http://content.example/rhel8.2/x86_64/dvd/AppStream
gpgcheck=0
用# yum list 检查,能列出一堆软件包就说明安装成功了
复制不了手敲的话注意是rhel不是rhe1
第三题,调试selinux
环境准备(考试不用做):
yum install httpd -y
systemctl start httpd
vim /etc/httpd/conf/httpd.conf 将 Listen 80 修改成 Listen 82
这里的node1不用做上述环境准备,node1是高度模拟考试环境的,上面是servera要做的环境准备。
题目解读:已经做好的非80端口的web服务,服务自启动和/var/www/html所有文件正常打开。
# semanage port -l |grep http 查看httpd服务端口号的标签(selinux上下文)
# semanage port -a -t http_port_t -p tcp 82 (加载要几秒)把82端口加到标签http_port_t
# semanage port -l |grep http 查看是否成功添加82端口
/var/www/html所有文件正常打开,
# restorecon -Rv /var/www/html
读取数据库selinux上下文类型httpd_sys_content_t,#ls -Zd /var/www/html 查看selinux上下文类型
# systemctl restart httpd 改完重启服务
# systemctl enable httpd 添加开机自启动
第四题,创建用户
# groupadd sysmgrs
# useradd -G sysmgrs natasha
# useradd -G sysmgrs harry
# useradd -s /sbin/nologin sarah
# echo redhat | passwd --stdin natasha
# echo redhat | passwd --stdin harry
# echo redhat | passwd --stdin sarah
第五题,给指定用户配置计划任务crontab
# crontab -e -u natasha
*/2 * * * * logger “hello rhcsa”
用# crontab -l -u natasha 来检查
第六题,创建特殊权限的目录,sgid
# mkdir /home/managers
# chgrp sysmgrs /home/managers
# chmod 2770 /home/managers
(# chmod g=rwx,o=--- /home/managers,# chmod g+s /home/managers)
# ls -ld /home/managers 验证查看
第七题,配置时间同步服务chronyd
先安装chrony客户端,再配置/etc/chrony.conf
# yum install chrony -y
# systemctl start chronyd
# systemctl enable chronyd
# vim /etc/chrony.conf
server materials.example iburst
(中间是时间服务器ip或主机名,背下此配置写法,考试无参考)
# systemctl restart chronyd
# timedatectl 查看当前时间
第八题,配置autofs自动挂载
将共享目录172.25.254.254:/rhome/remoteuser1以rw形式挂载到本地/rhome/remoteuser1
# yum install autofs -y
# vim /etc/auto.master
/- /etc/auto.misc
# vim /etc/auto.misc
/rhome/remoteuser1 -rw 172.25.254.254:/rhome/remoteuser1
# systemctl restart autofs
# systemctl enable autofs
按tab键补全命令 cd /rhome/remoteuser1说明挂载成功了,记住次配置文件中rw前要加横线-
注意172.25.254.254:/rhome/remoteuser1这里是英文的冒号:
自动挂载形式不用先建立挂载点,会自动建立挂载点的。
当触发(进去)挂载点时,才会将设备挂载到挂载点上。
练习环境没有remoteuser1用户和其目录需自建立。
第九题,配置/var/tmp/fstab权限,权限出现具体组名、用户名考的就是acl
# cp /etc/fstab /var/tmp/
# setfacl -m u:natasha:rw /var/tmp/fstab
# setfacl -m u:harry:--- /var/tmp/fstab
记住u:natasha:rw的u前面不要加横线-
第十题,添加用户并设置密码
# useradd -u 3533 manalo
# echo redhat |passwd --stdin flectrag
第十一题,find查找文件
# mkdir /root/findfiles cp -r复制目录
# find / -user jacques -exec cp -r {} /root/findfiles/ \;
找到带有suid文件并复制到某目录,
# find / -perm /4000 -exec cp -r {} /root/findfiles/ \;
# find / -name 名字 -type f/d
-iname 忽略大小写 -maxdepth 数字 设置查找的目录深度
大小 -size kMG 小k大M大G
搜索大小超过10M的文件,find -size +10M
搜索大小小于10M的文件,find -size -10M
-mmin 分钟数 根据修改时间搜索文件
find / -mmin +120 120分钟以前修改的文件
find / -mmin -120 过去120分钟内修改的文件
find / -user root -group mail 搜索u为rootg为mail的文件
第十二题,grep查找字符串
# grep ng /usr/share/xml/iso-codes/iso_639_3.xml >> /root/list
不得包含空行是迷惑你的,因为它本身不会包含空行的
# grep root /etc/passwd | grep -v “^$” > /root/list
一个>是覆盖,两个>>是追加
第十三题,tar打包归档,注意掌握3种压缩格式
# tar -zcvf /root/backup.tar.gz /usr/local
打包并压缩,# tar [选项] 压缩后的压缩包名称 要压缩的文件或文件夹
-cf :对文件或文件夹进行打包 (解压把c换成x,解压到指定路径,-C 指定路径)
-v :显示压缩进度
-z :用gzip压缩工具把打包后的文件压缩为.tar.gz 这个用的多
-j :用bzip2压缩工具把打包后的文件压缩为.tar.bz2
-J :用xz压缩工具把打包后的文件压缩为.tar.xz
第十四题,普通用户组提权,看%wheel模块怎么写
[root@servera ~]# visudo
%harry ALL= NOPASSWD: ALL
第十五题,编写欢迎界面,任意用户登入系统时,显示hello界面
[root@servera ~]# vim /etc/motd
Hello RHCSA!
第十六题,未来新增加的用户,密码最大使用天数为50天
# vim /etc/login.defs PASS_MAX_DAYS=50
改完后可新增用户查看,# useradd mpp # chage -l mpp
chage -l user01 查看用户密码情况 求帮助:man chage 或chage --help
chage -d 0 user01 用户首次登入后强制修改密码
密码最短期限设为10天,chage -m 10 user01
密码最长期限设为30天,chage -M 30 user01
第十七题、十八题,容器题(1大题拆分成2题了,实际上是1题)
以wallah用户开一个名字叫logserver的容器,并使用rsyslog镜像开启,
把node1的/home/wallah/container_logfile映射到容器中的/var/log/journal目录
将容器配置为container-logserver服务,并让systemd来管理该服务,能够开启自动加载该服务(container-logserver)
先开容器后将容器变成systemd管理
分析具体步骤,
# su - wallah 不能su切换做题,考试不用装软件包
而是从物理机ssh,# ssh wallah@node1 密码和用户名wallah同名
podman login registry.domain250.example
(先登入镜像仓库,用到的信息是上文提供的注册服务器信息,admin redhat321)
第一步,先登入镜像存储服务器,podman login
第二步开容器,先查找镜像rsyslog在存储服务器哪个位置,
podman search registry.domain250.example/ 最后一定要加/
podman run -d --name logserver -v /home/wallah/container_logfile/:/var/log/journal:Z 最后这里加镜像rsyslog在存储服务器的存储路径
-v 将物理机目录映射到容器里面 -d 放后台运行容器 Z是指改selinux上下文
用 podman ps 查看有这个容器
第三步,将容器配置为container-logserver服务,并让systemd来管理该服务
先建立目录,mkdir /home/wallah/.config/systemd/user -p
进入该目录生成文件,cd /home/wallah/.config/systemd/user
podman generate systemd --name logserver --files --new
ls 查看会多个文件
杀掉这个容器,强制删除这个容器,podman rm -f logserver
用podman ps 查看没有这个容器
先启动自己(启动下单元配置文件),systemctl --user daemon-reload
再启动该服务, systemctl --user start container-logserver.service
添加开机自启动,2条命令,
loginctl enable-linger
systemctl --user enable container-logserver.service
第一题、重置node2的root密码
考试点桌面console调出终端,练习环境的桌面node2控制台无效,得在物理机终端敲virt-manager调出控制台界面进入
重启瞬间按e进到linux这行的行尾(servera教学环境需将带console全部删除,考试、生产环境都不用删),后在linux这行的行尾空格加上rd.break(rd.break中断进入系统)
然后按ctrl + x 进入(鼠标往下拉到底)switch_root:/# 界面输入一些重置密码命令
switch_root:/# mount -o remount,rw /sysroot 重新挂载到/sysroot
switch_root:/# chroot /sysroot 进入到/sysroot
sh-4.4# passwd 输入两遍密码(不用写passwd root 当前重置密码的用户就是root)
sh-4.4# touch /.autorelabel 将新密码标记到/etc/shadow
最后输入两遍exit就重启了,重启会有点慢
CentOS7破解密码:https://wwwblogs/github-cn/p/11258438.html
第二题、配置yum源
先把原有的删除,先cd /etc/yum.repos.d/ ,再 rm -rf *
没有名字要求,就随意命名但要以.repo结尾,如# vim test.repo
[base]
baseurl=http://content.example/rhel8.2/x86_64/dvd/BaseOS
gpgcheck=0
[app]
baseurl=http://content.example/rhel8.2/x86_64/dvd/AppStream
gpgcheck=0
用# yum list 检查,能列出一堆软件包就说明安装成功了
复制不了手敲的话注意是rhel不是rhe1
第三题、调整逻辑卷大小
# df -hT 查看挂载情况,-T查看文件系统类型,发现已有的逻辑卷/dev/mapper/myvol-vo
# lvextend /dev/myvol/vo -L 230M
# resize2fs /dev/myvol/vo 只能用于ext文件系统类型
# df -hT 查看挂载情况
第三题、添加交换分区,考试时要留个空硬盘做vdo题目
先查看原有swap大小,free -h ,是在原有基础上加空间的。
看下有几块硬盘,lsblk 最好用这个看 cat /proc/partitions
vdb已经分了2个主分区,# fdisk /dev/vdb
n 新增分区
选择p 主分区
主分区编号,回车采取顺序默认编号排下来
First sector 起始柱面直接回车
Last sector 结束柱面加大小,+756M
按 w 报保存分区并退出
看有无新增的/dev/vdb3分区,lsblk 或 cat /proc/partitions
将/dev/vdb3分区格式化为swap文件系统,# mkswap /dev/vdb3
加载swap文件系统,# swapon /dev/vdb3
再持久化,# vim /etc/fstab
/dev/vdb3 swap swap defaults 0 0
# mount -a 刷新
# free -h 查看大小 df看不到swap分区情况,得用free看swap分区情况
第四题、创建逻辑卷,考试时要留个空硬盘做vdo题目
先创建好挂载点,# mkdir /mnt/qa
按理说分区只给指定大小的,但这是最后一道题分区题,可直接回车给剩余所有大小。
# fdisk /dev/vdb
n 新增分区
选择p 主分区
主分区编号,回车采取顺序默认编号排下来
First sector 起始柱面直接回车
Last sector 结束柱面,回车默认给剩余大小给这个分区
按 w 报保存分区并退出
看有无新增的/dev/vdb4分区,lsblk 或 cat /proc/partitions
先创建pv,# pvcreate /dev/vdb4
再创建vg并指定PE块为16M,# vgcreate qagroup /dev/vdb4 -s 16M
若忘记加-s 16M就删除卷组再重做,# vgremove qagroup # vgcreate qagroup /dev/vdb4 -s 16M
创建lv,# lvcreate -n qa qagroup -l 60
小写-l指定PE块个数,大写-L指定大小size
格式化,# mkfs.ext3 /dev/qagroup/qa
再持久化,# vim /etc/fstab
/dev/qagroup/qa /mnt/qa ext3 defaults 0 0
# mount -a 刷新
# df -h 查看挂载情况
第五题、创建vdo卷,创建vdo卷的设备必须是一个未使用的磁盘
# mkdir /vbread
# yum install vdo -y
# systemctl start vdo && systemctl enable vdo
创建和挂载通过man操作来复制粘贴,# man vdo 搜索/example
把创建的命令复制粘贴出来,# vdo create --name=vdough --device=/dev/vdc --vdoLogicalSize=50G
格式化,这里要加-K快速格式化,# mkfs.xfs -K /dev/mapper/vdough 设备路径名在上一条创建命令末尾
挂载再# man vdo 搜索/example 找到这个,x-systemd.requires=vdo.service
# vim /etc/fstab 注意要写这个,x-systemd.requires=vdo.service
/dev/mapper/vdough /vbread xfs defaults,x-systemd.requires=vdo.service 0 0
# mount -a 刷新
# df -h 查看挂载情况
第六题、配置系统调优,为系统配置建议的tuned
# tuned-adm recommend 查找建议的profile的tuned
# tuned-adm profile virtual-guest 切换profile
# tuned-adm active 查看当前使用的profile
本文标签: 模拟考试
版权声明:本文标题:rhcsa8学习和模拟考试 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726333618h939008.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论