パスワードなしでsudoで何かを実行する必要があるので、visudo
これを使用してsudoers
ファイルに次のものを追加しました。
MYUSERNAME ALL = NOPASSWD: /path/to/my/program
それからこれを試しました。
$ sudo /path/to/my/program
[sudo] password for MYUSERNAME:
パスワードを尋ねるのはなぜですか?パスワードを要求せずにroot以外のユーザーとしてrootとしてコマンドを実行/使用するにはどうすればよいですか?
ベストアンサー1
sudo に一致する項目が複数ある場合、/etc/sudoers
最後の項目が使用されます。したがって、パスワードプロンプトを持つコマンドを実行し、パスワードプロンプトなしで特定のコマンドを実行できるようにするには、最後に例外が必要です。
myusername ALL = (ALL) ALL
myusername ALL = (root) NOPASSWD: /path/to/my/program
を使用すると、(root)
プログラムをrootとして実行できますが、他のユーザーとしては実行できません。 (影響を考慮しない限り、必要最小限の権限よりも多くの権限を付与しないでください。)
Ubuntuを実行していない場合、またはデフォルトのsudo設定を変更した読者は注意してください(Ubuntuのsudoはデフォルトでは問題ありません)。: 高い権限でシェルスクリプトを実行するのは危険です。クリーンな環境で起動する必要があります(シェルが起動すると遅すぎます(参照)。シェルスクリプトでsetuid設定を許可する)、したがってこれを処理するにはsudoが必要です。このオプションDefaults env_reset
が/etc/sudoers
コンパイル時のデフォルト値であることを確認してください(sudo sudo -V | grep env
含める必要がありますReset the environment to a default set of variables
)。