web-dev-qa-db-ja.com

sudoersファイルでフルパスを指定しないようにする方法は?

sudotest.shファイル(Ubuntu 12.04 LTSサーバー上)に/etc/sudoers(またはSudoを必要とするスクリプト/バイナリ)のNOPASSWDエントリを追加しようとしていますが、それが機能するので、フルパスを指定する必要があります。次のエントリは問題なく機能します。

%jenkins ALL=(ALL)NOPASSWD:/home/vts_share/test/sudotest.sh

問題は、スクリプトが別のディレクトリに移動する可能性があることです。これは、パスで*ワイルドカード(つまり、/*/sudotest.sh)を使用して、スクリプトを任意のディレクトリに配置できるようにする絶好のチャンスのようですが、マニュアルには、ワイルドカードは/と一致しないと記載されています。パスで使用される場合の文字。動作しないことを確認しました。

スクリプトの代わりにWordALLを使用できることは知っていますが、これは、安全でないと思われるコマンドに対してパスワードプロンプトが表示されないことを意味します。

どうすればこれを解決できますか?

6
s g

スクリプトの代わりにALLを配置すると、適切に構成されたPATHに見つからない限り、スクリプトを実行できません。

フルパスを指定せずにコマンドを実行するには、PATH変数で指定されたディレクトリにある必要があります。

Sudoの場合、使用するPATHが環境でどのように構成されているかによって異なります。

secure_path変数がsudoersで設定されている場合、コマンドはその中のディレクトリに配置する必要があります。

ユーザーをexempt_groupに追加すると、ユーザーは独自のPATHを使用できます。

5
user9517