su <username>
でsu
を実行でき、パスワードを要求されます。パスワードの入力を求められないsu
のパスワードパラメータはありますか?
例えばsu <username> -p <password>
別のユーザーとして実行するスクリプトを作成したい場合は、次のように動作しますが、標準出力への改行なしで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
!
私は信じています、ありませんし、それは良い考えではないでしょう。その理由は次のとおりです。su <username> -p <password>
などのコマンドでパスワードを記述すると、bash履歴にプレーンテキストで保存されます。これは確かに大きなセキュリティ問題です。
自動化された方法でsu
(またはSudo
)を使用してコマンドを実行する必要がある場合は、su
またはSudo
を使用せずにコマンドを含むシェルスクリプトを作成し、su <username> script.sh