|
|
1
55
如果没有根权限,您将无法在端口80上打开服务器,这是对操作系统级别的限制。所以唯一的解决方案是在打开端口后删除根权限。
下面是在python中删除根权限的可能解决方案:
Dropping privileges in Python
. 一般来说,这是一个很好的解决方案,但您还必须添加
我复制并清理了一点代码,删除了日志记录和异常处理程序,让您自行处理。
|
|
|
2
12
我建议使用
|
|
|
3
7
当我需要删除权限时,请用户输入其用户名和组不是一个好主意。这里有一个稍微修改过的tam's代码版本,它将删除特权并切换到启动sudo命令的用户。我假设您使用的是sudo(如果不是,请使用tam's代码)。
|
|
|
4
4
记住,suid根程序有很多安全考虑因素(干净和安全的环境、umask、特权、限制,所有这些都是您的程序必须正确设置的东西)。如果你能使用像systemd这样的东西,那就更好了。 |
|
|
5
2
除非在做了一些你不想成为超级用户的事情之后,你需要请求套接字,否则大多数情况下都可以工作。 我做了一个叫做 tradesocket 不久前。它允许您在进程之间来回传递POSIX系统上的套接字。我所做的是在一开始就关闭一个保持超级用户状态的进程,然后进程的其余部分在权限中下降,然后从另一个请求套接字。 |
|
|
6
2
以下是对 Tamás's answer ,更改如下:
(不过,我对使用这个功能还比较陌生,所以我可能遗漏了一些东西。它可能不适用于旧内核(<3.8)或禁用文件系统功能的内核。
其用途如下:
|