私の$ HOME / binフォルダにsudoスクリプト

私の$ HOME / binフォルダにsudoスクリプト

$HOME/bin私のフォルダに使用する必要があるものが1つありますsudo

走れば

sudo <nameofthescript>

わかりました。

sudo: <nameofthescript>: command not found

$PATHこのスクリプトをに追加する最良の方法は何ですかsudo

それを移動する必要がありますか/usr/local/sbin

フォルダを作成する必要がありますか/root/bin

答え1

sudoPATHローカルスクリプトが見つからないように制限が設定されています。env_reset特定のユーザーなどをターゲットにしないように構成できますが、おそらく最も簡単な方法は、次のことを行うmysudo1行スクリプトを直接作成することです。

#!/bin/sh
exec sudo -s PATH="$PATH" exec "$@"

mysudo somecommand ...それから交換と言いますsudo somecommand ...。 sudoにシェルを実行しPATHて元の状態にリセットし、元のパスにあるコマンドを実行するように依頼します。

答え2

PATHランチャーを含む特定のディレクトリセットを持つLinuxやWindowsなどのオペレーティングシステムの環境変数。あなたの質問によると、実行可能なスクリプトは$HOME/binディレクトリの下に配置されます。したがって、PATHにないスクリプトを実行するには、オペレーティングシステムがファイルにアクセスして実行できるように完全なファイル構造パスを提供する必要があります。例えば、

sudo $HOME/bin/<nameofthescript>

常に完全なファイルパスを提供したくない場合は、次のコマンドを使用してファイルパスを物理環境に配置できます。スクリプトを$HOME/binディレクトリに保存したとします。

PATH=$PATH:$HOME/bin

上記のコマンドは、binディレクトリを環境パスに追加し、それを<nameofscript>システムのどこでも使用できます。また、これはbashが実行されるまで機能します。新しい端末で同じ操作を試みると、PATHはデフォルト値に変わります。永久に作成するには、$HOME/.profileまたはファイルに次の行を追加する必要があります$HOME/.bashrc

export PATH=$PATH:$HOME/bin

ルートユーザーだけがどこでも実行できるようにするには、またはディレクトリ<nameofscript>の下に配置するだけです。/sbin/usr/sbin

関連情報