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

在Python中删除根权限

爱繁
2023-03-14
问题内容

我想让一个Python程序开始在端口80上侦听,但是此后无需root权限即可执行。有没有办法删除根或没有它获得端口80?


问题答案:

没有root特权,您将无法在端口80上打开服务器,这是对OS级别的限制。因此,唯一的解决方案是在打开端口后放弃root特权。

这是在Python中删除
root特权的可能解决方案:在Python中删除特权。通常,这是一个很好的解决方案,但是您还必须添加os.setgroups([])功能以确保不保留root用户的组成员身份。

我复制并清理了一点代码,并删除了日志记录和异常处理程序,以便您OSError自行处理(当不允许进程切换其有效UID或GID时将抛出该异常):

import os, pwd, grp

def drop_privileges(uid_name='nobody', gid_name='nogroup'):
    if os.getuid() != 0:
        # We're not root so, like, whatever dude
        return

    # Get the uid/gid from the name
    running_uid = pwd.getpwnam(uid_name).pw_uid
    running_gid = grp.getgrnam(gid_name).gr_gid

    # Remove group privileges
    os.setgroups([])

    # Try setting the new uid/gid
    os.setgid(running_gid)
    os.setuid(running_uid)

    # Ensure a very conservative umask
    old_umask = os.umask(077)


 类似资料:
  • 问题内容: 不会在Windows上删除只读文件。是否有与“ rm -rf”等效的python?为什么哦,为什么这么痛苦? 问题答案: 可以采用一个错误处理函数,该函数在删除文件时会遇到问题。您可以使用它来强制删除有问题的文件。 灵感来自http://mail.python.org/pipermail/tutor/2006-June/047551.html和http://techarttiki.bl

  • 问题内容: 我有以下DataFrame: 我需要删除等于的行0。最有效的方法是什么? 问题答案: 如果我正确理解的话,它应该很简单:

  • 问题内容: 我需要找到一种方法来在python中转换以下字符串: 等等。我尝试了.rstrip(‘0’)。rstrip(’。’),但是如果输入为0或00则不起作用。 有任何想法吗?谢谢! 问题答案: 更新了 通用以保持精度并处理看不见的值: 输出:

  • 我有一个包含列和的df。我正在尝试仅为每个用户的值行后的值删除重复项 最终df

  • 在 MySQL 中,可以使用 REVOKE 语句删除某个用户的某些权限(此用户不会被删除),在一定程度上可以保证系统的安全性。例如,如果数据库管理员觉得某个用户不应该拥有 DELETE 权限,那么就可以删除 DELETE 权限。 使用 REVOKE 语句删除权限的语法格式有两种形式,如下所示: 1)第一种 删除用户某些特定的权限,语法格式如下: REVOKE priv_type [(column_

  • 问题内容: 我有一个基于不同气象站的数据集, 我想删除具有多个NaN的’stationID’组。例如,如果我键入: 然后,我想删除一个组中至少具有一定数量的NaN(例如30个)的组。据我了解,我不能将dropna(thresh = 10)与groupby一起使用: 那么,用熊猫做到这一点的最佳方法是什么? 问题答案: 你可以做的IIUC 例: 因此,这将滤除具有大于1 nan值的组