作用: 让文件更加安全(配置或者代码文件密码文件)
查看文件的隐藏权限: 文件默认没有隐藏权限
[root@b13k ~]#lsattr test.txt
---------------- test.txt
i 无敌的 加上i权限 无法写入 删除 增加内容
a 只能追加内容 无法vim写入 删除
[root@b13k ~]#lsattr test.txt #查看隐藏权限
---------------- test.txt
[root@b13k ~]#chattr +i test.txt #增加隐藏权限i
[root@b13k ~]#lsattr test.txt
----i----------- test.txt
[root@b13k ~]#rm -f test.txt
rm: cannot remove ‘test.txt’: Operation not permitted
[root@b13k ~]#vim test.txt
[root@b13k ~]#ll
total 0
-rw-r--r-- 1 root root 0 May 24 08:55 test.txt
[root@b13k ~]#echo hehe > test.txt
-bash: test.txt: Permission denied
[root@b13k ~]#ll
total 0
-rw-r--r-- 1 root root 0 May 24 08:55 test.txt
[root@b13k ~]#cat test.txt
[root@b13k ~]#lsattr test.txt
----i----------- test.txt
[root@b13k ~]#chattr -i test.txt #取消隐藏权限: -i
[root@b13k ~]#lsattr test.txt
---------------- test.txt
[root@b13k ~]#lsattr +a test.txt #增加隐藏权限a
[root@b13k ~]#lsattr test.txt
-----a---------- test.txt
[root@b13k ~]#echo hehe >> test.txt
[root@b13k ~]#cat test.txt
hehe
注意:
1.在企业中注意 无法对一个文件进行修改操作时注意查看是否有隐藏权限
2.如果没有隐藏权限需要查看第三方安全软件
suid = 4 让用户执行命令的时候拥有命令所有者的权限
sgid = 2 让用户执行命令的时候拥有属组的权限
粘滞位t = 1 给目录增加时只有目录内文件的所有者或者root才可以删除或移动该文件
给/usr/bin/rm 授权 suid后 rm的权限由0755 变为 4755
[root@b13k ~]#ll /usr/bin/rm
-rwxr-xr-x 1 root root 62872 Nov 17 2020 /usr/bin/rm
[root@b13k ~]#
[root@b13k ~]#chmod u+s /usr/bin/rm
[root@b13k ~]#ll /usr/bin/rm
-rwsr-xr-x 1 root root 62872 Nov 17 2020 /usr/bin/rm
[root@b13k ~]#stat /usr/bin/rm
File: ‘/usr/bin/rm’
Size: 62872 Blocks: 128 IO Block: 4096 regular file
Device: 803h/2051d Inode: 50359588 Links: 1
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-05-24 08:24:35.921007844 +0800
Modify: 2020-11-17 06:24:58.000000000 +0800
Change: 2022-05-24 09:23:02.726308884 +0800
Birth: -
如何在在Linux系统中做一个共享目录 所有的用户都可以在这个目录下有创建文件的权限
所有的用户都可以在此目录下可以创建自己的文件 但是其他用户不能删除自己的文件
使用粘滞位
[root@b13k ~]#chmod o+t /data
[root@b13k ~]#ll -d /data
drwxrwxrwt 2 root root 6 May 24 17:33 /data
[root@b13k ~]#su - ahui
Last login: Tue May 24 17:40:59 CST 2022 on pts/0
[ahui@b13k ~]$touch /data/haha.txt
[ahui@b13k ~]$exit
logout
[root@b13k ~]#su - stu1
Last login: Tue May 24 17:39:09 CST 2022 on pts/0
[stu1@b13k ~]$rm -f /data/haha.txt
rm: cannot remove ‘/data/haha.txt’: Operation not permitted
作用: 在固定的时候完成固定的命令
比如:
定时任务服务名称: crond # 默认开启 类似于 sshd服务
查看定时任务状态:
[root@b13k ~]#systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-12-29 16:38:42 CST; 4 months 23 days ago
定时任务分为两类:
第一种定时任务: 用户定时任务 默认为空 家庭 普通用户的需要注意权限问题
创建定时任务:
第二种定时任务: 系统定时任务 国家
直接编辑配置文件
vim /etc/crontab #
用户定时任务和系统定时任务区别: 权限区别
1) root权限高
2) 普通用户只能处理自己相关的文件 没有权限对系统文件进行处理
3) 执行时间同步的时候用户的和系统没有任何区别
4) 执行脚本 如果在系统目录下普通用户需要有x执行权限 在普通用户家目录下可以直接执行
5) 普通用户只能使用cron -e 进行编辑定时任务 无法通过vim编辑配置文件 没有权限
时间使用五颗星来定义:
第一颗星: 表示每分钟 0-59 0表示整点 60分
第二颗星: 表示时 0-23 0表示晚上12点
第三颗星: 表示天 1-31
第四颗星: 表示月 1-12
第五课星: 表示周 1-7 星期天可以使用0或者7来表示
凌晨12点表示方式
00 00 * * *
定时任务语法:
时间 用户名称 可执行命令
* * * * * user-name command to be executed
* 表示每的意思
* * * * * 表示每分钟
*/n 间隔n分钟
*/3 每间隔3分钟执行一次
*/5 每间隔5分钟执行一次 创建定时任务的时间为11:02分 请问下次执行时间是多少? 按照整点计算
*/30 每间隔30分钟执行一次
- 区间范围
1-8 表示从1点到8点
, 时间分隔
1-8,14,18 表示早上1-8点和下午的的2点和下午的6点执行任务
30 8 * * * echo go school
30 08 * * * echo go school
* 12 * * * echo go to bed # 不正确
* 00 * * * echo go to bed # 不正确 表示凌晨12点的每分钟都执行 凌晨 12:01 12:02 … 1:00
00 00 * * * echo go to bed# 正确的
两种方案:
第一种:
crontab -e
00 00 * * * tar zcvf all.tar.gz /etc/passwd
第二种:
vim /etc/crontab
00 00 * * * root tar zcvf all.tar.gz /etc/passwd
00 07-11 * * * 命令 # 如果多条命令建议写入脚本 在定时任务执行脚本
00 07-11 * * * sh /server/scripts/test.sh
* * * * * whoami|tail -1 >> /ahui/ahui.txt
第一步: 将时间修改为date -s 20081010
第二步: 通过定时任务配置每分钟进行一次时间同步 ntpdate ntp1.aliyun.com
在使用crontab -e定义配置文件时 配置文件只识别的PATH变量 只有 /usr/bin 和 /bin
crontab -e 编辑的定时任务 命令只搜索/usr/bin和/bin目录
注意: 在使用crontab -e编辑定时任务配置文件前需要先重新定义一下PATH变量
[root@b13k ~]# crontab -l
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
* * * * * echo ahui > /ahui/ahui.txt
* * * * * ntpdate ntp1.aliyun.com
可以通过绝对路径执行解决PATH找不到问题
[root@b13k ~]# crontab -l
* * * * * echo ahui > /ahui/ahui.txt
* * * * * /usr/sbin/ntpdate ntp1.aliyun.com
定时任务规则前加注释 给我们自己看的 作用是什么
使用脚本执行定时任务
超过两条以上的命令写入脚本 在定时任务调用脚本
cat /server/script/test.sh
touch /tmp/1.txt
useradd test01
crontab -e
* * * * * sh /server/scripts/test.sh
定时任务中时间的%不识别 需要使用\转义
执行脚本前面使用sh 或者 bash(如果不加必须给脚本x执行)
定时任务结果定向到/dev/null 或者写入到文件中
[root@b13k ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 9858560 61348 9797212 1% /
通过两个日志文件检查定时任务:
1.通过/var/log/cron 检查命令的完整性
2.通过查看/var/spool/mail/root 邮件中的内容
默认的cronta -e 只识别的路径/usr/bin /bin
解决方法:
第一种: 在配置文件中定义PATH路径 建议使用第一种方式
第二种: 命令使用绝对路径执行
第三种: 把命令写入脚本 在脚本文件中定义PATH变量
[root@b13k ~]# crontab -l
* * * * * sh /root/ntp.sh
[root@b13k ~]# cat ntp.sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
ntpdate ntp1.aliyun.com
[root@b13k ~]# systemctl stop postfix
[root@b13k ~]#
[root@b13k ~]# systemctl disable postfix
Removed symlink /etc/systemd/system/multi-user.target.wants/postfix.service.
复制定时任务中每分钟的任务粘贴200行进行测试
等待一分钟后查看邮件目录 发现生成了200多小文件
[root@b13k ~]# ll /var/spool/postfix/maildrop/|wc -l
207
解决方法:
文件的隐藏权限
i 无敌的 加上i权限 无法写入 删除 增加内容
a 只能追加内容 无法vim写入 删除
lsattr file\dir #查看文件隐藏权限
chattr +-i\a file\dir # 给文件或目录增加或去掉隐藏权限
特殊权限
suid 4 让用户执行命令的时候拥有命令所有者的权限
sgid 2 让用户执行命令的时候拥有属组的权限
粘滞位 1 给目录增加时只有目录内文件的所有者或者root才可以删除或移动该文件
定时任务重要内容:
* * * * * 分时日月周
* 表示每
*/5 表示每5分钟
1-8 区间范围
, 时间分隔 1-4,8,10
注意事项: