web-dev-qa-db-ja.com

同じスクリプトでコマンドを実行するためにbashスクリプト内でユーザーIDを切り替える/変更するにはどうすればよいですか?

スクリプト(インストールプロセスの一部としてrootとして実行される)内でユーザーIDを切り替えて、外部スクリプトを呼び出さずにいくつかのコマンドを実行し、次にrootに戻って他のコマンドを実行する方法はありますか?

並べ替え:

#!/bin/bash
some commands as root
SWITCH_USER_TO user
some commands as user including environment variables checks, without calling an external script
SWITCH_USER_BACK
some other stuff as root, maybe another user id change...
13
a1an

いいえ。ただし、Sudoを使用してシェルを実行し、ヒアドキュメントを使用してコマンドをフィードすることができます。

#!/bin/bash
whoami
Sudo -u someuser bash << EOF
echo "In"
whoami
EOF
echo "Out"
whoami