Sudo

允許非 root 使用者使用 ‘crontab -l -u’

  • August 29, 2022

我有兩個使用者:user1 和 user2 user1 添加到 /etc/cron.allow 但是當我crontab使用該-u選項執行時,我得到:

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

是否可以在不授予crontab -u使用者 sudo 權限的情況下授予使用者此權限?

您可以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.

等等。

要將這些權限授予多個使用者,請考慮創建一個組(例如,cronpeople),然後在您的 sudoers 配置中使用它:

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

如果您希望所有使用者都擁有這些權限,您可以替換%cronpeople為。ALL

引用自:https://unix.stackexchange.com/questions/715356