GNU/Linux >> Linux の 問題 >  >> Linux

別のユーザーとして bash スクリプトの一部を実行する

スクリプトで sudo コマンドを使用します。

形式:

sudo -u username command

sudo コマンドは command を実行します ユーザー username として .

スクリプトがルートとして実行されている場合、パスワードの入力を求めるプロンプトは表示されないと思います。それ以外の場合、この記事では 1 つのコマンド ラインでパスワード付きの sudo を使用する方法について説明し、この記事ではパスワードなしで sudo を使用する方法について説明します。


この回答は良いですが、serverfault のアドバイスは少し危険です。誰でも root として何でも実行できるようになります。コメントの書式を設定できないため、ここに投稿します。

visudo を使用して、必要な権限をできるだけ正確に付与することをお勧めします。 visudo と入力します 次のような行を追加します:

username hostname = NOPASSWD: /full/path/to/command1, full/path/to/command2

これと同じものを多くのホストで実行する必要がある場合は、次の方法で開くことができます:

username ALL = NOPASSWD: /full/path/to/command1, full/path/to/command2

しかし、私はどちらも使用しません:

username ALL=(ALL) NOPASSWD: ALL

orusername ホスト名 =ALL

sudoer の man ページには、多くの悲惨な詳細があります


# I=like:

#test if running bash as a different user works
sudo -u nobody bash -c : && RUNAS="sudo -u nobody"

echo 1: $USER

#Runs bash with commands between '_' as nobody if possible
$RUNAS bash<<_
echo 2: \$USER
_

echo 3: $USER

# ./実行

1: root
2: nobody
3: root

Linux
  1. ユーザーとして引数を使用してスクリプトを実行しますか?

  2. パスワードなしで別のユーザーとしてスクリプトを実行するには?

  3. Ubuntu - sudo を使用して起動時にコマンドを実行する

  1. Bash でテキスト ファイルをコマンドとして実行する

  2. initスクリプトで特定のユーザーとしてコマンドを実行する方法は?

  3. jenkins パイプラインで bash コマンドを実行する

  1. スクリプトをルートとして遡及的に実行する方法は?

  2. Bash スクリプト - ユーザー入力の読み取り方法

  3. su - ユーザー対 sudo su - ユーザー