1 人のユーザーに対して複数の sudo タイプ

1 人のユーザーに対して複数の sudo タイプ

メインの管理者ユーザー (全員に sudo 権限を持つ) に、1 つのコマンドに対して別のユーザーとしてパスワードなしの sudo 権限を持たせたい状況があります。私の知る限り、/etc/sudoers に次の内容を設定する必要があります。

ramo   ALL=(otherUser) NOPASSWD: /usr/bin/command
ramo   ALL=(ALL) ALL

しかし、この 2 つの行が競合しているか、2 番目の行が最初の行を上書きしているようです。これを実現する方法について何かアイデアはありますか?

乾杯

ラモ

編集: ユーザーを指定するときの sudo の動作を少し誤解していたことが判明しました。ALL=(otherUser) の場合、「sudo -u otherUser」は必要なく、sudo だけでよいという印象を持っていました。これは当てはまりません。

答え1

順序は重要であり、その動作は sudoers(5) のマニュアル ページで説明されています。

ユーザーに複数のエントリが一致する場合、それらは順番に適用されます。複数の一致がある場合、最後の一致が使用されます (必ずしも最も具体的な一致とは限りません)。

元のルールでは、「(ALL) ALL」が最後の一致なので、sudo はパスワードを要求します。

次の /etc/sudoers は機能します:

ramo   ALL=(ALL) ALL
ramo   ALL=(otherUser) NOPASSWD: /bin/whoami

例えば:

$ sudo -k /bin/whoami
[sudo] password for ramo: 
root
$ sudo -k -u otherUser /bin/whoami
otherUser
$ sudo -k -u otherUser /bin/true
[sudo] password for ramo:
$ sudo -k /bin/true
[sudo] password for ramo:

Fedora 19 で sudo-1.8.6p7-1 を使用してテスト済み

答え2

'!' で否定できると思います。2行目を試してください

ramo ALL=(ALL) !/usr/bin/command

関連情報