sudoを使用するときにこのディレクトリが私のPATHに追加されないのはなぜですか?

sudoを使用するときにこのディレクトリが私のPATHに追加されないのはなぜですか?

apachectl私はソースからApache WebサーバーをコンパイルしてインストールしましたPATH

スクリプトをrootとして実行する必要があるため、rootユーザーディレクトリにディレクトリを追加する必要があることがわかっているので、次の行を追加してみましょう。PATH

  • 文書:/root/.bashrc
#
# add directory of apachectl to PATH
PATH=$PATH:/usr/local/apache2/bin

私が追加したパスが正しいことを知っていますが、次のコマンドを実行すると次のようになります。

sudo apachectl start

私は得る:

sudo: apachectl: command not found

このディレクトリを私のディレクトリにどのように追加できますかPATH

答え1

sudoにディレクトリを追加する方法PATH(見たように)いいえルートと同じ)sudoersファイルを編集するだけです。

sudo visudo

次に、次の行を見つけます。

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

最後にディレクトリを追加します。

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/apache2/bin"

または、実行したい実行可能ファイルへのシンボリックリンクを作成して直接配置することもできます/usr/local/bin

sudo find /usr/local/apache2/bin -type f -executable -exec ln -s {} /usr/local/bin/

エイリアスを追加するとsudo環境がエクスポートされますが、これはややエレガントではなく、より重要なことは1人のユーザーにのみ機能することです。

関連情報