パスワードをパラメータとしてsudoを実行し、スクリプトで使用できるようにします。私は試した
sudo -S mypassword execute_command
しかし、成功しませんでした。助言がありますか?
回答:
-Sスイッチは、sudoにSTDINからパスワードを読み取らせます。これはあなたができることを意味します
echo mypassword | sudo -S command
パスワードをsudoに渡す
ただし、ユーザーがrootであるかどうかの確認など、コマンドの一部としてパスワードを渡すことを伴わない他の人による提案は、セキュリティ上の理由からおそらくはるかに優れたアイデアです。
sudo chmod -R 0100 myScriptFolder
ですか?それはセキュリティの問題を解決しませんか(あなた以外の誰もあなたのコンピュータをルートとして使用しない場合)?
s
スクリプトのビットを設定して、sudo
rootとして実行する必要がないようにすることができます(スクリプトにrootパスワードを書き込む必要もありません)。
sudo chmod +s myscript
+s
setuidビットです。+t
スティッキービットです。
echo -e "YOURPASSWORD\n" | sudo -S yourcommand
echo -e "YOURPASSWORD\n" | sudo -S "run -x"
。それは言うsudo: run -x: command not found
。これを回避する方法はありますか?
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi