2

非ルートとして実行したいコードのセグメントがあります。プログラムが非ルートとして実行されている場合、何もする必要はありません。ただし、プログラムが root として実行される場合は、root 権限を削除し、コードのセグメントを実行してから、root 権限を再度有効にする必要があります。有効化/無効化のコードをどのように記述しますか?

4

2 に答える 2

0

次のことを試してください。

import os
print "user who executed the code: %d" % os.getuid()
print "current effective user: %d" % os.geteuid()
if os.getuid() == 0:
    os.seteuid(65534) # user id of the user "nobody"
    print "current effective user: %d" % os.geteuid()
    # do what you need to do with non-root privileges here, e.g. write to a file
    print >> open("/tmp/foobar.txt", "w"), "hello world"
    os.seteuid(0)
print "current effective user: %d" % os.geteuid()

これをルート出力として実行します。

コードを実行したユーザー: 0
現在有効なユーザー: 0
現在の有効ユーザー: 65534
現在有効なユーザー: 0
于 2012-11-06T06:50:14.040 に答える
0

os.getuid()os.setuid( ) を試してください。それらを使用して、スクリプト内でユーザーを切り替えることができます。

于 2012-11-06T06:29:27.040 に答える