別のユーザーとしてログインし、シェルスクリプトで一連のコマンドを実行するには?

別のユーザーとしてログインし、シェルスクリプトで一連のコマンドを実行するには?

私の要件は、パスワード認証を必要とする別のユーザーとしてログインし、ユーザーアカウントで実行するシェルスクリプトからそのユーザーとしていくつかのコマンドを実行することです。

例: user1 がスクリプトを実行しています。要件は、パスワードを使用してuser2としてログインし、単一のシェルスクリプトを使用して一連のコマンドを実行することです。

答え1

これを使用する方法はいくつかあります。

  1. 使用su。 suを使用すると、次のコマンドを実行できます。

su user -c "command"

または

su - user -c "command"

違いは、ダッシュがあればターゲットユーザーの環境を取得できることです。このコマンドを使用すると、ターゲットユーザーのパスワードを入力するように求められます。

  1. 使用sudo:

sudo -u user "command"

このコマンドを使用すると、パスワード(あなたのパスワード)を有効または無効にすることができます。

  1. 使用ssh:

SSHを使用すると、ユーザーパスワード、キーパスワード(使用可能な場合)を使用してコマンドを実行できます。

ssh user@localhost "command"

PS:他の可能な方法もありますが、rshのようにほとんど不可能です。

答え2

このコマンドを使用すると、su [username]現在の場所でそのユーザーのコンテキストでコマンドを実行できます。su - [username]そのユーザーのホームディレクトリに切り替えるには、次のコマンドを使用します。ユーザー名を省略すると root に切り替わります。

関連情報