taro373
@taro373

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

シェルスクリプト内でsudoコマンドを実行したい

シャルスクリプト内でsudoコマンドを実行しようとしています。
同じようなことはMacOSでは行っているので、単純な勘違いだと思うのですが、教えていただきたく投稿します。

下記のシェルスクリプトを実行すると
(パスワードは実際のものと変更してありますが、パスワード中にリダイレクトの不等号は含まれています)

PASSWORD='Pass>Word'
echo $PASSWORD | sudo -S date
echo "date by sudo"
exit

下記の結果になります。

$ ./backup.sh 
/var/tmp/sclPH8mhK: 行 8: -S: コマンドが見つかりません
date by sudo

sudo コマンドのパラーメータとして指定した"-S"が別コマンドとして認識されているようです。
シェルスクリプト中でsudoを使いたかったのでこのようにしたのですが、CentOSではこのような使い方はできないのでしょうか。

man sudoで確かめるとこうありましたので、CenttOSでもできるものだと考えました。

     -S, --stdin
                 Write the prompt to the standard error and read the password from the stan‐
                 dard input instead of using the terminal device.  The password must be fol‐
                 lowed by a newline character.
1

3Answer

expect(tcl)は優れものです。今ではAnsibleでしょうか?

さて、visudo 叉は  vi /etc/sudoers にてNOPASSWORD の記述し特定ユーザーや特定コマンドをパスワード無しで実行できます。

1Like

質問を投稿した翌日、サーバのディスク(RAID6)が止まりました
その対応でこちらの作業が全くできませんでした。

そういえばexpectは過去に使ったことがあります。対話型というところが、最初は難しかったですが
たしかに使えました。もう一度この方法を試してみます。
ありがとうございました。

1Like

Your answer might help someone💌