![允许非 root 用户使用“crontab -l -u”](https://linux22.com/image/210048/%E5%85%81%E8%AE%B8%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%E2%80%9Ccrontab%20-l%20-u%E2%80%9D.png)
我有两个用户: 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 *
会让testuser
跑crontab -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 *
如果你愿意,你可以替换%cronpeople
为ALL
全部用户拥有这些权限。