当前位置: 首页 > 面试题库 >

检查脚本用户是否具有类root用户特权的最佳方法是什么?

章阳波
2023-03-14
问题内容

我有一个Python脚本,它将执行许多需要root级权限的事情,例如在/ etc中移动文件,使用apt-get安装等等。我目前有:

if os.geteuid() != 0:
    exit("You need to have root privileges to run this script.\nPlease try again, this time using 'sudo'. Exiting.")

这是进行检查的最佳方法吗?还有其他最佳做法吗?


问题答案:

根据“比许可更容易请求宽恕”原则:

try:
    os.rename('/etc/foo', '/etc/bar')
except IOError as e:
    if (e[0] == errno.EPERM):
       sys.exit("You need root permissions to do this, laterz!")

如果您担心自己的不可携带性,则无论如何os.geteuid()都不应对此感到厌烦/etc



 类似资料:
  • 问题内容: 查看URL存在并且响应不是404的最佳方法是什么? 问题答案: 您可以使用 手册中的示例2 : 第一个数组元素将包含HTTP响应状态代码。您必须解析它。 请注意,示例中的函数将发出HTTP HEAD请求,这意味着它将不会获取URL的正文。这比使用GET请求(也将返回正文)更有效。 还要注意,通过设置 默认 上下文,任何使用http流上下文的后续调用现在都将发出HEAD请求。因此,确保完

  • 问题内容: 如何检查用户是否具有金字塔权限。例如,我只想在用户拥有一定权限但所有人都可以使用视图的情况下显示一些HTML。 问题答案: 通常的方法是: 另请参见http://docs.pylonsproject.org/projects/pyramid/1.0/narr/security.html#debugging- imperative-authorization- failures 和htt

  • 问题内容: 我有一个游标,带有来自选择的值,我想根据我是否发现任何行来做点什么。 这似乎不起作用,有帮助吗? 问题答案: 您需要在使用%FOUND属性之前对游标执行FETCH。将您的代码更改为类似 请注意,您可能需要将变量添加到FETCH语句的INTO子句中,在TABLE1和TABLE2中的每一列都需要添加一个变量。还要注意,编写此游标的方式可能会获得比预期更多的返回行。因为没有指定连接条件,所以

  • 问题内容: 我的权限记录绑定到我的应用程序中的每个帐户。每个帐户可以具有一个或多个基于帐户类型的权限记录。这是示例: 上面的查询将为其中一个帐户产生这样的数据: 正如您在上方看到的,此帐户已分配了4条记录。访问类型可以是“完全”或“仅查看” 。访问级别可以是州“ S”,城市“ C”或建筑物“ B”。用户一次只能分配一个访问级别,因此,例如,不存在用户可以分配城市和州级别的情况。我的问题是,针对特定

  • 我有一个变量(testvariable),根据变量的isNull,我需要做一个方法调用,如下所示 在可选的

  • 问题内容: 我正在尝试检查某一个是否为元音。这样做的最佳方法是什么? 问题答案: 这是我使用了一段时间的解决方案,但它并没有让我失望: 对于我的应用程序,它相当快。