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