红帽RHCE培训-课程2笔记内容
1 kickstart自动安装
已安装系统中,在root下述目录会自动生成kickstart配置文件
ll ~/anaconda-ks.cfg
关键配置元素注释,详见未精简版
创建Kickstart配置文件
yum list *kick*
system-config-kickstart
yum install system-config-kickstart
包安装后,在应用-系统工具中有kickstart
使用system-config-kickstart实用程序创建kickstart配置文件
--有两种方法来创建一个启动配置文件:
1、使用系统配置与实用( system-config-kickstart)
2、使用文本编辑器(vi,vim 模板/root/anaconda-ks.cfg )从已安装的系统中拷贝一份
Kickstart安装步骤: 详见Virtualization and AutomatedInstallation.docx
1、创建安装源(FTP、NFS)
2、编辑DHCP配置文件,启动DHCP服务器
3、创建启动引导界面配置文件,启动TFTP服务器(TFTP)
4、创建kickstart配置文件
PXE网卡启动 实用kickstart自动安装
PXELinux
DHCP+TFTP(syslinux) +FTP +KICKSTART
原理:
PXE网卡启动
-=>DHCP服务器获得IP
-=>TFTP下载“pxelinux.0"、“vmlinuz”、“initrd”
-=>启动系统
-=>FTP下载文件
tftp ftp
小文件 大文件
局域网 广域网
UDP TCP
无用户 用户
桌面服务
gdm = gnome desktop manager
2 grep sed
# touch /tmp/{a..c}{1..3}
# ls /tmp/[ac]*
# ls /tmp/[a-c]*
# grep ^S /etc/selinux/config 以S开头的行
# grep ^S.*= /etc/selinux/config 以S开头并且包含=的行 SELINUX=enforcing .为占位符
# grep root /etc/passwd 含root的行
# grep -n root /etc/passwd 含root的行 并显示行号
# grep -n ^root /etc/passwd 以root开头的行 显示行号
# grep -n nologin$ /etc/passwd 没有bash的用户 ,即查找以nologin结尾的行
# grep -n nologin$ /etc/passwd | wc -l 统计行数wc -l
# grep -i ^his /etc/profile 以his开头的行,不区分大小写
# grep -v '#' /etc/fstab 不包含#的行
# grep -v '#' /etc/fstab | grep -v ^$ 不包含#号的行,且忽略空行^$
# ip add show | grep inet
# ip add show | grep -A 1 inet 输出含inet的行及其后一行
# ip add show | grep -B 1 inet 输出含inet的行及其前一行
# grep -e ^root -e student /etc/passwd -e查找字符串,多条件同事查找
# grep -E '^root|student' /etc/passwd -E后跟多个条件,各条件以|连接
两条命令均为:查找以root开头的行,或包含student的行
# man sed 查找文件内容并替换
# sed '/=/anei rong' /etc/selinux/config 在每个含=的行后,都增加显示一行nei rong,实际未写入文件,仅显示在屏幕
# sed -i '/=/anei rong' /etc/selinux/config 在每个含=的行后,都增加一行nei rong,-i交互
# sed -i '/nei rong/d' /etc/selinux/config 将含neirong的行删除
# sed -i '/^SELINUX=/s/=.*/=permissive/' /etc/selinux/config 将以SELINUX=开头的行中=及其之后的内容,修改为=permissive
# sed -i.bk '/^SELINUX=/s/=.*/=enforcing/' /etc/selinux/config
将以SELINUX=开头的行中=及其之后的内容,修改为=permissive,并把原文件备份为config.bk
3 计划任务
3.1 at 一次性任务
systemctl status atd
at 11:00
输入执行,例如echo haha>/tmp/1100.txt
<ctrl+d>
atq查询
atrm 删除
3.2 cron 循环服务 最小单位分
systemctl status crond
crontab -e 编辑
查找帮助:vim /etc/crontab 或 man 5 crontab
* * * * * 命令
分 时 日 月 年 星期 命令
*/5 8-20 * * * command 每天8到20点,每隔五分钟执行
crontab -l 查看
crontab -r 删除
配置文件/etc/cron.deny 拒绝使用crontab的用户,直接添加用户名
crontab -e -u student编辑其他用户的计划任务
# vim /etc/cron.deny
...
student
cron相关日志/var/log/cron
4 优先级 nice renice
nice可分配的-20~19 高~低
dd if=/dev/zero of=/dev/null bs=1K &
ps -o pid,nice,cmd 查看优先级nice
修改正在运行的进程优先级
renice -n -10 31034
在运行进程时指定优先级
nice -n -7 dd if=/dev/zero of=/dev/null bs=1K &
普通用户只能降低优先级
# top
# killall dd
5 facl == file Access control list
文件的访问控制ACLs
设置ugo之外,具体的访问控制权限
访问控制列表的概念
标准Linux文件权限,有局限性。
ACL允许细粒度的权限被分配到一个文件。
文件的所有者可以设置ACL在单个文件或目录。
新的文件和子目录,可以自动从父目录的默认ACL继承ACL设置。
getfacl 文件 获取文件权限
getfacl . 获取当前目录权限
setfacl [参数] 文件或目录
-m 设定的ACL参数给文件使用
-x 删除ACL参数
-b 删除全部ACL参数
-k 删除预设的ACL参数
-R 递归设定ACL参数
-d 设定预设参数,default,只对目录有效,在该目录新建的数据会引用此默认值[参数] 文件或目录
选项,先-d 后其他,设定默认facl
单独-m设定即时生效facl
# touch /folder/file
# setfacl -m u:student:rwx /folder/file 用户student可读写
# getfacl /folder/file
# setfacl -x u:student /folder/file 删除student权限
# getfacl /folder/file 但mask未删除 权限标示仍为+
# setfacl -x mask /folder/file 删除mask 权限标示恢复为.
# setfacl -m g:wheel:rwx /folder 目录设置组wheel权限 无-d,目录中新创建文件无法继承
# setfacl -b /folder 删除所有facl权限-b
# setfacl -d -m g:wheel:rwx /folder other无法继承,user group可以继承
备份acl权限及恢复
# mkdir /mnt/backup
# mount classroom:/home/guests /mnt/backup
# getfacl -R /folder > /mnt/backup/s0_yymmdd.bk
# setfacl -R -b /folder
# ll -d /folder /folder/*
# setfacl --restore /mnt/backup/s0_yymmdd.bk
# getfacl /folder
当facl权限和原组 用户权限冲突时:
匹配,取小
6 管理SELinux安全
考点
selinux security enhanced linux
semange port vim /var/log/messages Listen 8089
chcon LINUX和windows互相共享 samba +filesystem
setsebool ftp +firewall
/.autorelabel single单用户跳密码
/etc/selinux/config SELINUX开关
ll -Z /var/www查看上下文关系-Z
chcon 修改上下文
resotrecon 恢复文件至默认的安全上下文
resotrecon -Rv /var/www将目录下所有文件的上下文关系恢复至和目录一致
nv /tmp/file1 /var/www/html拷贝文件及上下文关系至目标位置
cp /tmp/file2 /var/www/html拷贝文件,但上下文关系继承目标目录
semanage也可用于给目录添加上下文关系
semanage fcontext -a -t httpd_sys_content_t '/common'
6.1 实验1:/etc/selinux/config SELINUX开关
/etc/selinux/config 中
SELINUX=enforcing 强制启动 on # setenforce 1 # getenforce
---------=permissive 警告启动 on # setenforce 0
---------=disable 停止 off
on | off # shutdown -r now
getenforce
setenforce (1 | 0 ) 命令立即生效
改配置文件,重启生效
-----------实验命令------------
# vim /etc/selinux/config 修改配置文件,重启生效
...
SELINUX=permissive
# grep ^SELINUX= /etc/selinux/config
# setenforce 0
# getenforce
6.2 实验2:chcon LINUX和windows互相共享 samba SMB
# yum list samba samba-common samba-client