自動的にパスワードを入力するスクリプトを作成するには? [コピー]

自動的にパスワードを入力するスクリプトを作成するには? [コピー]

スクリプトを作成しています。私はこのスクリプトが次のタスクであるrootとしてログインを実行したいと思います。 (1行を使用しようとしています。)パスワードを自動的に入力するスクリプトはどのように書きますか?

#echo "Hello Admin"
#su root@admin

ここに画像の説明を入力してください。

ここに画像の説明を入力してください。

パスワードを入力せずにbashスクリプトを実行したいと思います。私のパスワードを尋ねるのはなぜですか?

答え1

それは不可能です!そのコマンドは機能しませんが、を使用してsudoユーザーを作成できます。オンラインでsudoユーザーを作成して、パスワードなしでコマンドを実行するALL ALL: NO Password方法を検索します。sudo

答え2

suパスワードを使用しないことが目標である場合は、ユーザーがパスワードなしで使用できるように許可を使用することをお勧めしますsudo susu/etc/sudoers

[username] ALL=(ALL) NOPASSWD: /bin/su

または

[username] ALL=(ALL) NOPASSWD: ALL

ユーザーはすでにルートアクセスを介して必要なすべての操作を実行できるためです。スクリプトでプレーンテキストのパスワードを渡すよりも利点は、rootパスワードが漏洩しないことです。スクリプトを削除した後でもパスワードを読むことができることに注意してください。

編集:以下の解決策は最終的には機能しません。コマンドとして処理し、実行後に終了しますsu。ほとんどのコマンドで動作しますが、それを使用している場合は、パスワードを要求しない限り、タイムスタンプはまだ最新であるため、パスワードがまだ残っていることに注意してください。まず、パスワードクエリを強制するために使用できます。 。しかし、で使用する方が良いです。stdinecho 'passwd'|sudo -S [command]sustdinsudosudo -ksudo -k && echo 'passwd'|sudo -S [cmd]NOPASSWD/etc/sudoers

NOPASSWD:編集:また、sudo -S読み取りsudoパスワードを使用しstdin、代わりに同様のものを使用することもできますecho [password]|sudo -S susudoユーザーパスワードを取得し、上記のように/bin/su実行権限が必要です。ALLすべてのコマンドと同様に、予想されるパスワードは「非」sudoユーザーのパスワードです。root

関連情報