例行工作

网络文件分析,查询,登录日志分析,等都属于工作调度

启动atd

~
● atd.service - Deferred execution scheduler
   Loaded: loaded (/lib/systemd/system/atd.service; enabled; vendor preset: enab
   Active: active (running) since Tue 2019-02-19 23:17:54 CST; 34s ago
     Docs: man:atd(8)
 Main PID: 7505 (atd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/atd.service
           └─7505 /usr/sbin/atd -f

2月 19 23:17:54 ming-pc-xiao systemd[1]: Stopped Deferred execution scheduler.
2月 19 23:17:54 ming-pc-xiao systemd[1]: Started Deferred execution scheduler.

ming@ming-pc-xiao:~$ 

输入的命令为

systemctl restart atd
systemctl status atd

使用atd指令产生所要运行的工作,

at运行方式

at的运行是会把工作以文本文件的方式写入

/var/spool/at/

使用 /etc/at.allow 与 /etc/at.deny可以限制at的使用。

/etc/at.allow 这个文件中可以使用
/etc/at.deny 这个文件不可以使用

当两个文件都存在的情况下只有root才可以使用

工作任务放入后台管理

ming@ming-pc-xiao:/sbin$ cd &
[1] 11373
ming@ming-pc-xiao:/sbin$ cd .. &
[2] 11375
[1]   已完成               cd
ming@ming-pc-xiao:/sbin$ ps
 PID TTY          TIME CMD
11376 pts/2    00:00:00 ps
24446 pts/2    00:00:00 bash
[2]+  已完成               cd ..
ming@ming-pc-xiao:/sbin$ 

此时可以把工作任务放入后台处理。

离线放入后台管理

ming@ming-pc-xiao:~$ nohup ./sleep500.sh &
[1] 11657
ming@ming-pc-xiao:~$ nohup: 忽略输入并把输出追加到'nohup.out'

ming@ming-pc-xiao:~$ ps
 PID TTY          TIME CMD
11657 pts/2    00:00:00 sleep500.sh
11658 pts/2    00:00:00 sleep
11661 pts/2    00:00:00 ps
24446 pts/2    00:00:00 bash
ming@ming-pc-xiao:~$ cat ./nohup.out 
ming@ming-pc-xiao:~$ 

SUID SGID SBIT

SUID SGID

某些特殊文件,例如出现文件权限状态为

-rwsr-xr-x

最显著的栗子为password命令,当输入password命令的时候会修改/etc/passwd
查看passwd命令的权限

ming@ming-pc-xiao:/etc$ ll | grep passwd
-rw-r--r--   1 root root       2676 2月   8 21:39 passwd
-rw-r--r--   1 root root       2676 2月   8 21:39 passwd-
ming@ming-pc-xiao:/etc$ 

可以发现对于其他用户来说是只能读,那么在其他用户下输入passwd时如何修改此文件呢。

采用的是SUID SGID
即,进程运行的时候,会有一些属性, 实际用户ID,实际组ID,有效用户ID,有效组ID等,在登录期间,这些ID不会发生更改。
有效用户ID和有效组ID则决定了进程在运行时的权限。内核在决定进程是否有文件存取权限时,是采用了进程的有效用户ID来进行判断的。
当输入命令为passwd的时候,虽然实际ID为testID,但是进程的有效用户ID则是passwd文件的所有者root的ID,所以passwd程序可以修改/etc/passwd文件

proc目录

程序是在内存当中的,内存数据是写在proc下的。