web-dev-qa-db-ja.com

rootとしてSuを実行し、コマンドを1行で実行する

Rootとしてsuを実行し、コマンドを1行で実行する必要があります。これはpythonスクリプトで使用するためのものです。私が探しているのは:

$ su root [some-magic] sh /home/jay/script-that-needs-executing-as-root.sh
<script output>

これは、公的なubuntuサーバー上にあります。これが実行されるアカウントにはパスワードがありませんが、設定されているため、pythonスクリプトは読み取り専用で、〜/ .profileにありますが、終わりは

cd ~/py/main
python3 start.py
logout

したがって、サーバーへの実際のアクセス権はありません。 pythonスクリプト内で動作しているので、必要に応じて、ユーザーはshellasrootをpythonスクリプトに入力し、ルートを入力できます。パスワードとコマンドを実行しますが、プログラムでこれを行う方法を探しています。


TL; DR-Sudo権限のないアカウントで、rootとしてシェルスクリプトを1行で実行する必要があります。

8
Jay Williams

su-cオプションを使用して、単一のコマンドを渡すことができます。

su root -c 'sh /home/jay/script-that-needs-executing-as-root.sh'
16
Munir