在默认情况下,任何用户都可以使用at服务,但这样是不安全的。为了不让主机被“黑”,就要使用/etc/at.allow和/etc/at.deny来进行管理限制。

/etc/at.allow 仅允许这个文件里列出的用户使用at
/etc/at.deny 该文件列出的用户都不能使用at服务

at.allow与at.deny的优先级

1)查看文件

[root@zdk home]# cd /etc/
[root@zdk etc]# ls at*
at.deny

系统默认情况下,只有at.deny

2)现在往at.deny里添加用户

[root@localhost etc]# cat /etc/at.deny

[root@localhost etc]# vim /etc/at.deny
[root@localhost etc]#
[root@localhost etc]# cat /etc/at.deny
a
b

3)切换用户执行at

[root@localhost etc]# su a
[a@localhost etc]$ at 12:00
You do not have permission to use at.
[a@localhost etc]$
不允许使用at这个命令。

4)因为没有at.allow,所以先建立文件,之后添加用户,最后执行at。

[root@localhost ~]# vim /etc/at.allow
[root@localhost ~]# cat /etc/at.allow
a

[root@localhost ~]# at 12:00
at> shutdown -h now
at> <EOT>
job 2 at 2012-12-25 12:00
[root@localhost ~]#  可执行at命令

5)添加用户为root时的情况

[root@zdk oracle]# vi /etc/at.deny
[root@zdk oracle]# cat /etc/at.deny
root
[root@zdk oracle]# at 01:00
at>  可执行at命令
当at.allow 文件存在,列出的用户才被允许使用 at,并且 at.deny 文件会被忽略。

当只有at.deny 文件时,列出的用户是被禁止使用 at。

并且root帐户随时都可以执行at指令,即使这个帐户已经被列入了at.deny存取控制文件的黑名单。

综上所述:at.allow比at.deny的优先级高!

例题:              at.allow中有test用户              at.allow中没有test用户

at.deny中有test用户                   能                            不能

at.deny中没有test用户                能                          不能

 

                               cron.allow中有test用户             cron.allow中没有test用户

cron.deny中有test用户                  能                                      不能

cron.deny中没有test用户              能                                     不能