パスワードを入力せずにシェルスクリプトからユーザーを切り替える

パスワードを入力せずにシェルスクリプトからユーザーを切り替える

端末を使用してシェルスクリプトを実行しています userA。このシェルスクリプトの途中でユーザーuserBに切り替えを使用します。suこの場合はパスワードを入力し、端末を介してuserB手動でパスワードを入力する必要があります。デバイスの横に立って手動で入力する必要なく、自動的にパスワードを入力する方法はありますか?このスクリプトにはループがあるため、パスワードuserBを入力する端末を見つめたくありません。または、端末が手動で入力するのを待たないように、シェルスクリプトにパスワードを入力する方法はありますか?誰でもこれを行う方法を提案できますか?

ベストアンサー1

sudoまたNOPASSWD、/etc/sudoers 構成の特定の項目を許可します (該当する項目へのアクセス権がある場合)。良い:

userA ALL = (userB) NOPASSWD: ALL

これにより、ユーザーAはパスワードなしでユーザーBへのフルアクセスを許可します。おそらく、ユーザーAが画面から離れているときに画面をロックできると信頼できる場合にのみ使用する必要があります。

あるいは、userAに特定のスクリプトにのみアクセス権を付与することもできます。たとえば、

userA ALL = (userB) NOPASSWD: /home/userB/scripts-for-userA/

これにより、ユーザーAはユーザーBとして/home/userB/scripts-for-userA/ディレクトリ内のすべてのコマンドを実行できます。しかし、セキュリティは依然としてこれらのコマンドによって異なります。

おすすめ記事