2016-07-13 27 views
-1

Pythonスクリプトで特定のユーザー権限でコマンドを実行したいとします。touchコマンドでsudo suコマンドを使用して他のユーザー権限でファイルを作成する

import os 
os.subprocess("sudo su user; cd  <directory_path> ; touch test", shell=True) 

ここのテストファイルは、sudo suで使用するユーザーの所有権で作成されません。

私はsudo -uとsudo -iでも同じコマンドを試しましたが、うまくいきませんでした。

答えて

1

あなたはsudo susudo -iを呼んでいる方法で新しいシェルを産卵していて、新しいシェルはcd;touchが渡されていません。

はおそらく(ただし、ディレクトリが存在しない場合は、あなたの意図したコードから動作がやや異なる)

sudo -u user touch <dir>/test 

の線に沿って何かをしたいです。

+0

sudoで複数のコマンドを実行する必要がある場合(つまり 'cd ; touch test')は、[この質問](http://stackoverflow.com/questions/)を参照してください。 5560442/how-to-run-two-commands-in-sudo)を参照してください。 –

関連する問題