oracleユーザーとして特定のコマンドセットを実行し、rootユーザーとしていくつかのコマンドを実行するスクリプトを作成する必要があります。どうすればいいですか? [閉鎖]

oracleユーザーとして特定のコマンドセットを実行し、rootユーザーとしていくつかのコマンドを実行するスクリプトを作成する必要があります。どうすればいいですか? [閉鎖]

oracleユーザーとして特定のコマンド・セットを実行し、ルートになっていくつかのコマンドを実行してoracleユーザーに戻るスクリプトを作成する必要があります。これはすべて1つのスクリプトで実行する必要があります。どうすればいいですか?具体的に言えば、私はデフォルトでOracle Traffic Director(OTD)のインストールと構成を自動化していますが、シェルスクリプトを作成するように求められました。インストールのすべてのステップはoracleユーザーとして実行されますが、次の2つのコマンドは次のとおりです。

chownルートポートバインディング

chmod 4750ポートバインディング

これはrootユーザーとして実行する必要があり、追加の自動化手順はoracleユーザーとして再度完了する必要があります。したがって、スクリプトでユーザー(rootとoracle)を切り替える方法が必要です。

答え1

rootでスクリプトを実行し、-u他のユーザーとして実行する必要があるコマンドにはsudoスイッチを使用します。 sudo のマニュアルページを参照してください。man sudo

# sudo -u user echo test
test

答え2

oracleユーザーとしてスクリプトを実行します。スクリプトでroot権限が必要な部分は、sudoコマンドラインと同じように使用してください。例えば

#!/bin/sh
echo 'This command is echoed by oracle user'
sudo echo 'This command is echoed with superuser privileges'

visudo次に、実行する必要がある特定のコマンドをパスワードなしで実行できるように、sudoersファイル(pass)を設定します。ファイルの下部に次の行を追加し、必要に応じてコマンドを変更します。実行する各コマンドには、次の行のいずれかが必要です。sudo

oracle localhost = (root) NOPASSWD: /path/to/command

関連情報