在 Oracle® Solaris 11.2 中管理系统信息、进程和性能

退出打印视图

更新时间: 2014 年 9 月
 
 

控制对 crontab 命令的访问

可以使用 /etc/cron.d 目录中的以下两个文件来控制对 crontab 命令的访问:cron.denycron.allow。这些文件只允许指定的用户执行 crontab 命令任务,例如创建、编辑、显示或删除自己的 crontab 文件。

cron.denycron.allow 文件包含用户名的列表,每行一个用户名。

    这些访问控制文件按以下方式协同工作:

  • 如果存在 cron.allow,则只有此文件中列出的用户可以创建、编辑、显示或删除 crontab 文件。

  • 如果不存在 cron.allow,则所有用户都可以提交 crontab 文件(cron.deny 中列出的用户除外)。

  • 如果既不存在 cron.allow 也不存在 cron.deny,您必须承担 root 角色才能运行 crontab 命令。

  • 要编辑或创建 cron.deny 以及 cron.allow 文件,您必须承担 root 角色。

在 Oracle Solaris 软件安装期间创建的 cron.deny 文件包含以下用户名:

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess

缺省 cron.deny 文件中的用户名都不能访问 crontab 命令。您可以编辑此文件,以添加被拒绝访问 crontab 命令的其他用户。

由于未提供缺省的 cron.allow 文件,因此,除缺省 cron.deny 文件中列出的用户之外的所有用户都可以使用 crontab 命令。如果创建 cron.allow 文件,则只有这些用户可以访问 crontab 命令。

如何拒绝 crontab 命令访问

  1. 承担 root 角色。

    请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  2. 编辑 /etc/cron.d/cron.deny 文件并添加将禁止其访问 crontab 命令的用户名,每行一个用户。
    daemon
    bin
    smtp
    nuucp
    listen
    nobody
    noaccess
    username1
    username2
    username3
    .
    .
    .
  3. 验证 /etc/cron.d/cron.deny 文件是否包含新项。
    # cat /etc/cron.d/cron.deny
    daemon
    bin
    nuucp
    listen
    nobody
    noaccess

如何将 crontab 命令访问限制于指定的用户

  1. 承担 root 角色。

    请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  2. 创建 /etc/cron.d/cron.allow 文件。
  3. root 角色添加到 cron.allow 文件。

    如果未将 root 添加到该文件中,则会拒绝 root 用户访问 crontab 命令。

  4. 添加将允许其使用 crontab 命令的用户名,每行一个用户。
    root
    username1
    username2
    username3
    .
    .
    .
示例 4-6  crontab 命令访问限制于指定的用户

以下示例显示一个 cron.deny 文件,该文件用于禁止用户名 jonestempvisitor 访问 crontab 命令。

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
jones
temp
visitor

以下示例显示一个 cron.allow 文件。用户 rootjonessmith 是仅有的可以访问 crontab 命令的用户。

$ cat /etc/cron.d/cron.allow
root
jones
smith

如何验证受限的 crontab 命令访问

要验证特定用户是否可以访问 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 文件中。