0

Ubuntuの/usr/binフォルダーに特別なファイルを置きたいのですが。基本的に私はPythonでセットアップファイルを書き込もうとしています。

しかし、仕事を遂行するために管理者特権が必要です、これらの特権をセットアップに提供する方法(パスワードを持っていて、それをプログラムで使用できる場合)?

4

2 に答える 2

1

エスカレーションされた特権でプログラムを実行する必要があります。Ubuntuでは、これは通常sudo、ユーザーにパスワードの入力を求めるコマンドを使用して実行されます。

于 2012-04-30T15:22:38.230 に答える
0

すでに実行中のスクリプトの特権をエスカレートすることはできません(ローカルエクスプロイトを使用しない限り)。

最善の方法は、@ Lattywareのアドバイスに従い、ユーザーにルート特権を使用して(sudoまたはその他の方法で)スクリプトを実行するように強制することです。これは、インストーラーにとってはかなり一般的な方法です。

ただし、本当に途中で特権を昇格する必要がある場合(理由は想像できません)、次のようなことができます。

import os
cpstr = 'echo %(pass)s | sudo -S cp "%(from)s" "%(to)s"'
os.system(cpstr % {'pass':'userpassword', 'from':'./build/bin/myapp', 'to':'/bin/myapp'})
于 2012-04-30T15:40:40.687 に答える