区分 sudo <command> 和 <command>

differentiate sudo <command> and <command>

我想让我的用户 运行 成为 sudo 和普通用户,这取决于他的 choice.He 可以使用 sudo 或正常,但如果不使用 sudo 我必须禁用一些功能才能获得摆脱 errors.So 我怎么知道那个用户给了我 sudo 执行权限?我正在 python.

上构建我的应用程序

读了几遍你的问题,我想我知道你在问什么了。我认为您想知道如何在 运行 时间内判断您的 python 脚本是否具有 root 权限,我的看法是否正确?

如果你真的想提前检查,你可以用os.geteuid()向系统查询用户id,如果是returns 0,你的脚本是运行宁作为根。

但是,另一种方法是简单地 运行 在 try 块中需要 root 权限的代码。具体取决于您要执行的操作,这可能是也可能不是更好的解决方案。如果您没有所需的权限,您还必须知道预期的异常类型。这使得编写起来有点困难,但代码最终可能会更灵活地适应不断变化的环境,例如拥有足够权限但不是 root 的用户。它还可能使代码更具可移植性,尽管异常可能会从一个 OS 更改为另一个

例如

try:
    function_that_needs_root()
except MyNotRootException:
    print "Skipping function_that_needs_root: you are not root"