允许非 root 用户使用“crontab -l -u”

允许非 root 用户使用“crontab -l -u”

我有两个用户: user1 和 user2 user1 被添加到 /etc/cron.allow 但是当我crontab使用该-u选项运行时,我得到:

user1@hostname:~$ crontab -l -u user2
must be privileged to use -

是否可以在crontab -u不授予用户 sudo 权限的情况下向用户授予此权限?

答案1

您可以sudo仅授予对该特定命令的访问权限。例如,以下规则...

testuser1     ALL=(ALL)       NOPASSWD: /usr/bin/crontab -l -u *

会让testusercrontab -l -u <someuser>。例如,这些都有效:

[testuser1@fedora ~]$ sudo crontab -l -u testuser1
no crontab for testuser1
[testuser1@fedora ~]$ sudo crontab -l -u testuser2
no crontab for testuser2
[testuser1@fedora ~]$ sudo crontab -l -u root
no crontab for root

但其他命令失败:

[testuser1@fedora ~]$ sudo crontab -l
[sudo] password for testuser1:
Sorry, user testuser1 is not allowed to execute '/usr/bin/crontab -l' as root on fedora.
[testuser1@fedora ~]$ sudo date
[sudo] password for testuser1:
Sorry, user testuser1 is not allowed to execute '/usr/bin/date' as root on fedora.

ETC。

要将这些权限授予多个用户,请考虑创建一个组(例如cronpeople),然后在 sudoers 配置中使用该组:

%cronpeople     ALL=(ALL)       NOPASSWD: /usr/bin/crontab -l -u *

如果你愿意,你可以替换%cronpeopleALL全部用户拥有这些权限。

相关内容