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


15

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

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


それはperferctlyスーパーユーザに質問フィットを思わ:superuser.com :-)
HongboZhu


1
superuserここから入手しました、superuser.com
questions / 67765 /…

回答:


12

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

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
!

2
うーん、「標準入力はttyである必要があります」
ジョンローレンスアスプデン

同じエラーが表示されます
-MaxV

12
エラーの取得:su: must be run from a terminal
Abhishek Kashyap

5

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

あなたが持つコマンドを実行する必要がある場合su(またはsudo自動化された方法で)、せずにコマンドをcontainigシェルスクリプトを記述しsuたりsudo、実行su <username> script.sh


1
su root script まだpasswdを入力する必要があります。
大開仙

はい@DaiKaixianが、それはどこにも保存されず、誰もがそれを読むことはできません
Wayne_Yux

2
あなたは次のようなものを試すことができます:echo <passwd> | sudo -S <command-line>。それは安全ではありませんが、動作します。
大開賢

1
私の答えの要点は、コマンドにパスワードを書くことは保存されないということです。だから私はそれをしないことをお勧めします
Wayne_Yux

-3

特定のコマンドを新しいユーザーとして実行する場合は、次のコマンドを使用します。
sudo -u {username} {command to be executed as the new user}


これは質問に答えません。問題は、パスワードの処理方法です。
スティーブンC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.