web-dev-qa-db-ja.com

「su」を実行する単一行コマンドはありますか?

su <username>suを実行でき、パスワードを要求されます。パスワードの入力を求められないsuのパスワードパラメータはありますか?

例えばsu <username> -p <password>

13
alvas

別のユーザーとして実行するスクリプトを作成したい場合は、次のように動作しますが、標準出力への改行なしでWordの「パスワード」を出力します

su - username <<!
enterpasswordhere
enter commands to run as the new user
!

パスワードが1234のfredという名前のユーザーがいて、パスワード文字列を表示せずにfredのホームディレクトリのlsをfredとして取得したい場合は、次のようになります

su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!
12
Brian

私は信じています、ありませんし、それは良い考えではないでしょう。その理由は次のとおりです。
su <username> -p <password>などのコマンドでパスワードを記述すると、bash履歴にプレーンテキストで保存されます。これは確かに大きなセキュリティ問題です。

自動化された方法でsu(またはSudo)を使用してコマンドを実行する必要がある場合は、suまたはSudoを使用せずにコマンドを含むシェルスクリプトを作成し、su <username> script.sh

5
Wayne_Yux