root以外のユーザーが「crontab -l -u」を使用できるようにする

root以外のユーザーが「crontab -l -u」を使用できるようにする

2人のユーザーがいます: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.

など。

複数のユーザーにこれらの権限を付与するには、グループ(たとえばcronpeople)を作成し、sudoers設定でそのグループを使用することをお勧めします。

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

必要%cronpeopleに応じて、次のように置き換えることができます。ALLみんなユーザーにはこれらの権限があります。

関連情報