パスワードなしで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
)。
答え2
他の項目があります。sudoers
ファイルは通常にあり、/etc/sudoers
ユーザーとも一致します。このNOPASSWD
ルールが優先される場合は、このルールの後に続く必要があります。
これを完了すると、通常、パスワードを要求せずに実行できるコマンドをsudo
除くすべてのコマンドに対してパスワードの入力を求められます。/path/to/my/program
答え3
警告する:この回答は安全ではないと見なされます。以下のコメントを参照してください
完璧なソリューション:次のステップは、目的の結果を得るのに役立ちます。
新しいスクリプトファイルを作成します(
create_dir.sh
目的のスクリプト名に置き換えます)。vim ~/create_dir.sh
スクリプトはユーザーのホームディレクトリに作成されます。
root
sudo
ルートレベルでフォルダを作成するなど、ユーザーだけが実行できるいくつかのコマンドを追加します。mkdir /abc
メモ:
sudo
このコマンドに追加しないでください。保存して終了します(使用:wq!
)次のコマンドを使用して実行権限を割り当てます。
sudo chmod u+x create_dir.sh
スクリプトにパスワードが必要ないように変更します。
sudoers
ファイルを開きます。sudo visudo -f /etc/sudoers
最後に次の行を追加します。
ahmad ALL=(root) NOPASSWD: /home/ahmad/create_dir.sh
ahmad
ユーザー名に変更してください。また、これが最後の行であることを確認してください。保存と終了。
ここで、コマンドを実行するときに
sudo
コマンドの前に次を追加します。sudo ./create_dir.sh
これにより、パスワードを要求せずにスクリプトファイル内でコマンドが実行されます。
ここに記載されている簡単な手順に従ってください。http://step4wd.com/2013/09/14/run-root-commands-in-linux-ubuntu-without-password/
答え4
あなたの構文が間違っているようです。少なくとも私は私に合った以下を使用します。
myusername ALL=(ALL) NOPASSWD: /path/to/executable