ls
ユーザーとして次のコマンドを実行しようとすると、abc
エラーが発生します。
xyz@host:~/temp$ sudo -u abc ls
[sudo] password for xyz:
Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host.
しかし、このようにしてsu abc
実行してもls
問題はありません。
答え1
ユーザーが特定のタスクをユーザーとして実行できるsudo
ようにセキュリティポリシーを設定する必要があります。マニュアル()を読み、命令を使用して設定します。xyz
abc
sudoers
man sudoers
visudo
/etc/sudoers
たとえば、ユーザーがパスワードなしでユーザーとして実行できるようにしますxyz
。次の文字列を次に追加します(直接編集せずに使用してください)。/usr/bin/whoami
abc
/etc/sudoers
visudo
/etc/sudoers
xyz ALL = (abc) NOPASSWD: /usr/bin/whoami
今テストしてみてください。
xyz@host:~$ sudo -u abc /usr/bin/whoami
abc
答え2
sudo
これは違うからだsu
。あなたはsu abc
システムのユーザーになります。abc
そうすれば、あなたがabc
できることは何でもできます。
一方、sudo
他のユーザーがプロキシを介して特定のコマンドを実行できるようにするために使用されます。つまり、sudo
設定によってユーザーに代わっていくつかのコマンドを実行できますabc
。実行しようとしているコマンドがこれらのいずれかでない場合は、エラーが報告されます。
答え3
すべてが大丈夫に見えますが、まだメッセージが表示され、毎回パスワードをSorry user xxx cannot execute...
求める場合。sudo
次のことができます。
- 削除行
/etc/sudoers
にユーザー設定が含まれています。 - アーカイブの保存
- ファイルを開き、このユーザーのオプションをコピーせずに入力します。
- アーカイブの保存
- 試してみてください。
これは私にとって効果的です。わかりましたが、Eメールで実行する必要があるコマンドをコピーしたので、行末は間違っていました。