2017-08-14 24 views
1

私はsudoモードでスクリプトtask.pyの一部だけを実行しようとしています。私はちょうど、コマンドラインから単一のコール$ python task.pyを作ることができるように、スクリプトのsudoの部品用のパスワードを入力する必要はありませんpythonスクリプトの一部をsudoとして実行

if __name__ == '__main__': 
    print('running normal parts')   
    .   .    . 
    . [running normal commands] . 
    .   .    . 

    print('running sudo parts') 
    .   .    . 
    . [running sudo commands] . 
    .   .    . 

:理想的には私は以下の構造でtask.pyを実行します。

2番目のブロックをsudoとして実行するようにPythonに伝えていいですか?私はsubprocessモジュールがsudo privelagesでコマンドを呼び出す方法を知っていましたが、 "sudoの部分を実行"するために別のスクリプトに "sudoの部分"を入れないでください。

+0

可能な同義語:[This](https://stackoverflow.com/questions/34189165/python-running-select-sections-of-code-as-sudo)と[this](https://stackoverflow.com)/questions/34281235/how-do-you-temporary-run-your-code-as-root)を参照してください。 – ForceBru

+1

'sudo'は'/etc/sudoers'のルールを定義してパスワードなしでユーザーまたはrootとしてコマンドを実行しない限り、パスワードを入力しなくてもrootとしてコマンドを実行しません。あなたはそれに特別な注意を払う必要があります。 – direprobs

答えて

1

私は非常には、ドキュメントがお勧めと同じように別々のスクリプトにsudo部品を置くことをお勧めします。そのアプローチは、スクリプトのセキュリティの姿勢を、権限の昇格で実行するために必要な部分(「最低特権」 - 基本のセキュリティ原則)だけであるため、劇的に向上させます。

私はそのドキュメントを詳細には読んでいませんが、スクリプトのsudo部分と読み込み可能なファイルまたはリソースへの書き込み権限を制限することについても言及していると思われます。

関連する問題