Suユーザーにならないでスクリプトを実行しようとすると、次のコマンドを使用します。
echo "password" | Sudo -S <command>
このコマンドを「scp」、「mv」、「whoami」コマンドに使用すると、コマンドは非常にうまく機能しますが、「chmod」に使用すると、コマンドはユーザーのパスワードを要求します。パスワードを入力せず、コマンドは機能します。私の問題は、システムが私にパスワードを要求することです。システムがパスワードを要求することを望まない。
問題ssは次のようなものです:
[myLocalUser@myServer test-dir]$ ls -lt
total 24
--wx-wx-wx 1 root root 1397 May 26 12:12 file1
--wx-wx-wx 1 root root 867 May 26 12:12 script1
--wx-wx-wx 1 root root 8293 May 26 12:12 file2
--wx-wx-wx 1 root root 2521 May 26 12:12 file3
[myLocalUser@myServer test-dir]$ echo "myPassw0rd" | Sudo -S chmod 111 /tmp/test-dir/*
[Sudo] password for myLocalUser: I DONT WANT ASK FOR PASSWORD
[myLocalUser@myServer test-dir]$ ls -lt
total 24
---x--x--x 1 root root 1397 May 26 12:12 file1
---x--x--x 1 root root 867 May 26 12:12 script1
---x--x--x 1 root root 8293 May 26 12:12 file2
---x--x--x 1 root root 2521 May 26 12:12 file3
Sudo
は、パイプされたパスワードを読み取る前に、このプロンプトをstderr
に出力します。標準エラーが表示されないようにリダイレクトします。
echo "password" | Sudo -S command 2> /dev/null