
私の要件は、パスワード認証を必要とする別のユーザーとしてログインし、自分のユーザー アカウントから実行するシェル スクリプト内でそのユーザーとしていくつかのコマンドを実行することです。
例: user1 がスクリプトを実行しています。要件は、パスワードを使用して user2 としてログインし、単一のシェル スクリプトを使用して一連のコマンドを実行することです。
答え1
いくつかの方法があります:
- . suを使用すると
su
、次のようにコマンドを実行できます。
su user -c "command"
または
su - user -c "command"
違いは、ダッシュを使用するとターゲットユーザーの環境が取得されることです。このコマンドでは、ターゲットユーザーのパスワードが求められます。
- 使用方法
sudo
:
sudo -u user "command"
このコマンドはパスワード(あなたのパスワード)の有無にかかわらず実行できます。
- 使用方法
ssh
:
sshを使用すると、ユーザーのパスワード、キーのパスワード(ある場合)を使用してコマンドを実行できます。
ssh user@localhost "command"
PS rshのような、めったに使用できない他の方法もあります。
答え2
コマンドを使用するとsu [username]
、現在の場所からそのユーザーのコンテキストでコマンドを実行できます。次のコマンドを使用すると、su - [username]
そのユーザーのホーム ディレクトリに切り替わります。ユーザー名を省略すると、root に切り替わります。