特殊权限位

系统文件数据的9个权限位 系统中实际应该有12个权限位

进程运行时能够访问哪些资源或文件,不取决于进程文件的属主属组,而是取决于运行该命令的用户身份的uid/gid,以该身份获取各种系统资源

  • setuid : 在常规权限位第三位上使用S表示如果存在x,则使用s表示,数字表示为4000,对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的属主身份来执行
  • setgid : 在常规权限位第六位上使用S表示如果存在x,则使用s表示,数字表示为2000,对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的属组身份来执行
  • sticky: 在常规权限位第九位上使用T表示如果存在x,则使用t表示,数字表示为1000,对全局可写目录(other也可写)来说,让该目录具有sticky后,删除只对属于自己的文件有效(但是仍能编辑修改别人的文件,除了root的).不能根据安全上下文获取对别人的文件的写权限

定时任务

软件种类

  • cronie:实现定时任务功能*****
  • atd:实现定时任务功能 只能一次设置定时功能
  • anacron:实现定时任务功能 应用在家用电脑

定时任务相关目录和文件

  • /etc/cron.hourly : 每小时定时任务目录
  • /etc/cron.daily : 每一天定时任务目录
  • /etc/cron.weekly : 每一周定时任务目录
  • /etc/cron.monthly : 每个月定时任务目录
  • /etc/cron.deny : 定时任务黑名单
  • /etc/cron.allow : 定时任务白名单,设置以后黑名单失效
  • /var/spool/cron : 用户定时任务配置文件保存目录
  • /var/log/cron : 定时任务日志

查看定时任务服务状态

systemctl status crond

查看/etc/crontab文件

# 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,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
# 分 时 日 月 周

定时任务相关命令

  • crontab -l : 用户定时任务查看
  • crontab -e : 用户定时任务编辑

定时规则

QQ图片20191125181058.png

# 每分钟
* * * * *
# 每小时第20分钟
20 * * * *
# 每小时第10分钟和第20分钟
10,20 * * * *
# 每小时第10分钟到第20分钟
10-20 * * * *
# 每10分钟
*/10 * * * *
# 每个小时10分钟后的每两分钟
10/2 * * * *
# 每天14点的每分钟
* 14 * * *
# 每天14点整
0 14 * * *
# 每月4日
* * 4 * *
# 每年4月
* * * 4 *
# 每个星期六
* * * * 6
  1. 日期信息不要和星期信息同时出现
  2. 命令部分尽量使用绝对路径
  3. 定时任务要有注释说明
  4. 命令执行成功条件 useradd ---> $PATH ---> /sbin/useradd ---> 命令执行成功
  5. 定时任务识别的PATH信息只有/usr/bin:/bin
  6. 定时任务中执行命令,如果产生输出到屏幕的信息,都会以邮件方式告知用户,所有用户的邮件保存在该目录/var/spool/mail
  7. 几乎大部分命令在最后会追加> /dev/null 2>&1&> /dev/null,将标准输出和错误输出都指向黑洞文件,防止占用硬盘资源

邮件服务占用磁盘空间问题

定时任务中执行命令,如果产生输出到屏幕的信息,都会以邮件方式告知用户,所有的信息都会存储在硬盘并占用硬盘资源

  • 关闭邮件服务
systemctl stop postfix

关闭邮件服务后会在/var/spool/postfix/maildrop产生小文件占用磁盘空间

最佳的解决方法依然是将定时任务的内容输出到黑洞文件

date命令使用

定时任务中无法date命令中的一些特殊符号

  • 把字符转义
* * * * *  /bin/date "+\%F \%T" >/tmp/time.txt
  • 把命令写入脚本再执行
vim /oldboy/date.sh
/bin/date "+%F %T"

* * * * *  /bin/sh /oldboy/date.sh &>/dev/null

系统的操作命令

chattr命令

用于改变文件属性

  • chattr +i /etc/passwd : /etc/passwd不得任意更动
  • chattr -i /etc/passwd : /etc/passwd可以任意更动

执行参数

  • a : 让文件或目录仅供附加用途。
  • b : 不更新文件或目录的最后存取时间。
  • c : 将文件或目录压缩后存放。
  • d : 将文件或目录排除在倾倒操作之外。
  • i : 不得任意更动文件或目录。
  • s : 保密性删除文件或目录。
  • S : 即时更新文件或目录。
  • u : 预防意外删除。

lsattr命令

用于显示文件属性

  • lsattr /etc/passwd : 查看/etc/passwd属性

crontab命令

定时任务服务

  • crontab -l : 用户定时任务查看
  • crontab -e : 用户定时任务编辑

定时规则

QQ图片20191125181058.png

# 每分钟
* * * * *
# 每小时第20分钟
20 * * * *
# 每小时第10分钟和第20分钟
10,20 * * * *
# 每小时第10分钟到第20分钟
10-20 * * * *
# 每个小时10分钟后的每两分钟
10/2 * * * *
# 每天14点的每分钟
* 14 * * *
# 每天14点整
0 14 * * *
# 每月4日
* * 4 * *
# 每年4月
* * * 4 *
# 每个星期六
* * * * 6