跳过导航链接 | |
退出打印视图 | |
系统管理指南:高级管理 Oracle Solaris 10 8/11 Information Library (简体中文) |
可以使用 /etc/cron.d 目录中的以下两个文件来控制对 crontab 命令的访问:cron.deny 和 cron.allow。这些文件只允许指定的用户执行 crontab 命令任务,例如创建、编辑、显示或删除自己的 crontab 文件。
cron.deny 和 cron.allow 文件包含用户名的列表,每行一个用户名。
这些访问控制文件按以下方式协同工作:
如果不存在 cron.allow,则所有用户都可以提交 crontab 文件(cron.deny 中列出的用户除外)。
如果 cron.allow 和 cron.deny 都不存在,则运行 crontab 命令需要超级用户特权。
编辑或创建 cron.deny 和 cron.allow 文件需要超级用户特权。
在 SunOS 软件安装期间创建的 cron.deny 文件包含以下用户名:
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess
缺省 cron.deny 文件中的用户名都不能访问 crontab 命令。您可以编辑此文件,以添加被拒绝访问 crontab 命令的其他用户名。
未提供缺省的 cron.allow 文件。因此,在安装 Oracle Solaris 软件后,所有用户(缺省 cron.deny 文件中列出的用户除外)都可以访问 crontab 命令。如果创建 cron.allow 文件,则只有这些用户可以访问 crontab 命令。
角色包含授权和具有特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置 RBAC(任务列表)"。
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .
# cat /etc/cron.d/cron.deny daemon bin nuucp listen nobody noaccess
角色包含授权和具有特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置 RBAC(任务列表)"。
如果未将 root 添加到该文件中,则会拒绝超级用户访问 crontab 命令。
将允许使用 crontab 命令的用户包括在内。
root username1 username2 username3 . . .
示例 8-6 将 crontab 命令访问限制于指定的用户
以下示例显示一个 cron.deny 文件,该文件用于禁止用户名 jones、temp 和 visitor 访问 crontab 命令。
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess jones temp visitor
以下示例显示一个 cron.allow 文件。用户 root、jones、lp 和 smith 是仅有的可以访问 crontab 命令的用户。
$ cat /etc/cron.d/cron.allow root jones lp smith
要验证特定用户是否可以访问 crontab 命令,请在使用该用户帐户登录后执行 crontab -l 命令。
$ crontab -l
如果用户可以访问 crontab 命令并已创建 crontab 文件,则会显示该文件。否则,如果用户可以访问 crontab 命令但不存在 crontab 文件,则会显示与以下消息类似的消息:
crontab: can't open your crontab file
此用户已列在 cron.allow 文件中(如果存在该文件),或者该用户未列在 cron.deny 文件中。
如果用户不能访问 crontab 命令,则无论是否存在以前的 crontab 文件,都会显示以下消息:
crontab: you are not authorized to use cron. Sorry.
此消息表明,该用户未列在 cron.allow 文件(如果该文件存在)中,或者该用户已列在 cron.deny 文件中。