web-dev-qa-db-ja.com

"echo" password "| Sudo -S <command>"はパスワードを要求します

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
2
Gefolge

Sudoは、パイプされたパスワードを読み取る前に、このプロンプトをstderrに出力します。標準エラーが表示されないようにリダイレクトします。

echo "password" | Sudo -S command 2> /dev/null
2
user4556274