########第二本书#######
#######unit自动安装#####
###1.kickstart脚本#####
kickstart脚本是自动应答系统在安装过程中一切问题的脚本文件
在这个文件可以实现系统的自动安装
在系统安装完毕后会在系统的root家目录中生成
anaconda-ks.cfg这个文件就是以此系统为模板生成的kickstart脚本
#####2.kickstart脚本的制作#####
手动编写kickstart的难度很大
系统中system-config-kickstart工具可以用图形的方式制作kickstart
yum install system-config-kickstart -y ##安装图形制作工具
system-config-kickstart ##打开图形ks制作工具
ksvalidator ks.cfg ##检测ks语法
####3.kickstart文件共享####
yum install httpd -y
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl start httpd
systemctl enable httpd
cp ks.cfg /var/www/html
####4.测试#####
[root@foundation7 Desktop]#virt-install \
> --name vmname(虚拟机名字) \
> --ram 800 \
> --file /var/lib/libvirt/p_w_picpaths/vmname(虚拟机名字)qcow2 \
> --file-size 8 \
> --location ftp://172.25.254.250/pub/rhel7.2 \
> --extra-args "ks=http://172.25.254.107/ks.cfg" & ##文件的地址ip
###附加pxe网络安装服务####
1.相应软件安装
yum install dhcp tftp-server syslinux httpd xinetd.x86_64 -y
systemctl stop firewalld.service
systemctl disable firewalld.service
vim /etc/xinetd.d/tftp
[ disable = yes ] =====> [ disable = no ]
systemctl restart xinetd
systemctl start httpd
systemctl enable httpd
2.必须文件的下载复制
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
把安装镜像中的isolinux/* 全部复制到 /var/lib/tftpboot/
mkdir /var/lib/tftpboot /pxelinux.cfg
cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
@@注意: 此处一定要放在/var/lib/tftpboot/pxelinux.cfg/default下,只有在这个目录文件下,才会被识别。
3.dhcp服务的配置
subnet 172.25.254.0 netmask 255.255.255.0 {
range 172.25.254.200 172.25.254.220;
option routers 172.25.254.254;
filename "pxelinux.0"; ##[所用到的文件]
next-server 172.25.254.107; ##[文件地址的ip]
}
#####unit2.用户权限列表####
##1.权限列表的定义###
指定特定用户对某个文件有特殊权限的记录表格
##2.权限列表的识别###
-rw-r--r--. 1 root root 188 Oct 29 13:49 1 ##权限位是.权限列表未激活
-rw-r--r--+ 1 root root 0 Oct 26 16:57 file1 ##权限位是+权限列表开启
##3.权限列表的查看###
getfacl file
# file: file1 ##文件名称
# owner: root ##文件所有人
# group: root ##文件所有组
user::rw- ##文件所有人权限
user:test:rw- ##特殊指定用户权限
group::r-- ##组权限
mask::r-- ##权限阀值
other::r-- ##其他人权限
##4.如何设定acl列表##
setfacl -m u:username:权限(如:rwx) filename
例:setfacl -m u:test:rw file ##指定test用户对file文件可读写
##5.mask权限阀值##
如果对有权限列表的文件执行chmod很可能会修改该权限列表中的mask
mask位特殊用户能够获得到的最大权限值
setfacl -m m:权限(如:rwx) ##修改该mask的值
[root@foundation7 mnt]# setfacl -m u:kiosk:rwx file
[root@foundation7 mnt]# chmod 644 file
[root@foundation7 mnt]# getfacl file
# file: file
# owner: root
# group: root
user::rw-
user:kiosk:rwx #effective:r--
group::r--
mask::r--
other::r--
@@!!!注意:当用chmod修改文件权限之后,若chmod中给的权限小于mask的值时,会出现正上方的#effectiver:r--语句。例子如上!!!
###6.默认权限###
当我们需要在指定目录中新建文件或目录都对指定用户有特殊权限时设定
setfacl -m d:u:username:权限 filename
例如:
[root@foundation7 lzt]# touch nihao/kk
[root@foundation7 lzt]# getfacl nihao/
# file: nihao/
# owner: root
# group: root
user::rwx
user:kiosk:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:kiosk:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
[root@foundation7 lzt]# getfacl nihao/kk
# file: nihao/kk
# owner: root
# group: root
user::rw-
user:kiosk:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--
默认权限对已有文件不生效
例如:
[root@foundation7 ~]# cd /lzt/
[root@foundation7 lzt]# ls
file1 file2 file3 lp
[root@foundation7 lzt]# setfacl -m d:u:kiosk:rwx /lzt
[root@foundation7 lzt]# getfacl /lzt/lp/
getfacl: Removing leading '/' from absolute path names
# file: lzt/lp/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
默认权限对目录本身不生效
例如:
[root@foundation7 lzt]# getfacl /lzt/
getfacl: Removing leading '/' from absolute path names
# file: lzt/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:kiosk:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
####unit3.系统延迟及定时机制###
##1.at延时任务##
at time
at> 动作
at>ctrl + d
at> <EOT>
at -l
atrm 任务号
当执行动作有输出时
输出内容会以邮件的形式发送给任务的发起人
[root@foundation7 mnt]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/kiosk": 1 message 1 new
>N 1 root Sun Oct 30 14:11 14/554 "Output from your job "
& 1
Message 1: ##回复mail编号
From root@foundation7.ilt.example.com Sun Oct 30 14:11:02 2016
Return-Path: <root@foundation7.ilt.example.com>
X-Original-To: kiosk
Delivered-To: kiosk@foundation7.ilt.example.com
Subject: Output from your job 2
To: kiosk@foundation7.ilt.example.com
Date: Sun, 30 Oct 2016 14:11:02 +0800 (CST)
From: root@foundation7.ilt.example.com (root)
Status: R
hello world
& q
Held 1 message in /var/spool/mail/kiosk
[root@foundation7 mnt]# echo > /var/spool/mail/kiosk ##清空日志
You have new mail in /var/spool/mail/kiosk
[root@foundation7 mnt]# mail
No mail for kiosk
at用户的黑白名单
/etc/at.deny ##默认存在并生效
/etc/at.allow ##默认不存在,一旦存在,/etc/at.deny失效
#####2.系统定时/定期任务###
命令方式发起:
crontab -u username -e
@@!!!注意:普通用户执行不能使用-u,即,执行crontab -e
MM hh dd mm ww
mm/2 ##每隔两分钟
hh-hh ##几点到几点
hh1,hh2 ##几点和几点
!!!可通过cat /etc/crontab查看具体用法
结果如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,t hu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
crontab -l ##查看当前的任务
crontab -u username -r ##删除当前username用户的任务(所有任务)
文件的方式发起
vim /etc/cron.d/filename
MM hh dd mm ww USERNAME 动作
echo 'MM hh dd mm ww USERNAME 动作' > /etc/cron.d/filename
crontab用户的黑白名单(效果同at用户的黑白名单)
/etc/cron.deny ##默认存在并生效
/etc/cron.allow ##默认不存在,一旦存在,/etc/cron.deny失效
###3.系统临时文件的管理###
vim /usr/lib/tmpfiles.d/xxxx.conf
type filename perm user group time
d /mnt/westos 1777 root root 10s
systemd-tmpfiles --create /usr/lib/tmpfiles.d/xxxx.conf ##读取相应配置文件,使之成为临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/xxxx.conf ##执行编写的文件
例如:vim /usr/lib/tmpfiles.d/westos.conf
内容为: d /mnt/wetos 1777 root root 10s
退出保存后执行:
systemd-tmpfiles --create /usr/lib/tmpfiles.d/xxxx.conf
touch /mnt/westos/file
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/xxxx.conf
可以发现在最短保存时间内执行systemd-tmpfiles --clean /usr/lib/tmpfiles.d/xxxx.conf操作无效