web-dev-qa-db-ja.com

コマンドラインからSudoを使用してこのスクリプトを実行するにはどうすればよいですか?

ユーザーのbinディレクトリに次のスクリプトがあります。ファイル名が「myScript」のふりをしましょう:

#!/bin/bash

python3 /myPath/myProgram.py "$@"

コマンドラインからmyScriptと入力すると、myProgram.pyが起動します。 Sudo myScriptと入力すると、次のエラーが表示されます:Sudo: myProgram: command not found

なぜこれが機能しないのですか?どうすればそれを機能させることができますか?

ありがとう!

1
Shule

おそらく次のようなスクリプトを実行する必要があります。

  • Sudo /path/to/myScript
  • Sudo ./myScript(スクリプトが現在のディレクトリにある場合)

command not foundを取得する理由は、スクリプトが現在のユーザーのPATHディレクトリにないためです。ただし、Sudoを使用すると、別のユーザー-rootとして実行されます(echo $PATHSudo -iを比較し、次にecho $PATHを比較してください)。だからあなたはそれをrootユーザーのPATHに追加したい:

  • /usr/local/bin/usr/bin/、または既にルートのPATHにある別のディレクトリにコピーします
  • PATHにディレクトリを追加 、ただしルートとして(慎重に)実行します。
4
Wilf