2

我有一段我想以非 root 身份运行的代码。如果程序以非 root 身份运行,则无需发生任何事情。但是如果程序以 root 身份运行,则需要删除 root 权限,执行代码段,然后再次启用 root 权限。你如何为启用/禁用编写代码?

4

2 回答 2

0

尝试os.getuid()os.setuid()。您可以使用它们在脚本中切换用户。

于 2012-11-06T06:29:27.040 回答
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 回答