【发布时间】:2014-02-15 13:46:20
【问题描述】:
我需要监听 linux 的端口来运行我的服务。所以,我总是运行python程序以sudo previlage开头,这使得pycahee等程序创建的文件和.pyc文件也获得了超级用户的权限,文件和目录只能在sudo中删除模式。这是非常不便的。那么,有没有办法指定python来创建普通的文件夹和文件呢?
【问题讨论】:
标签: python linux filesystems
我需要监听 linux 的端口来运行我的服务。所以,我总是运行python程序以sudo previlage开头,这使得pycahee等程序创建的文件和.pyc文件也获得了超级用户的权限,文件和目录只能在sudo中删除模式。这是非常不便的。那么,有没有办法指定python来创建普通的文件夹和文件呢?
【问题讨论】:
标签: python linux filesystems
以 root 身份运行脚本只是为了监听特权端口并不是一个好习惯(除非脚本确实需要 root)。
如果您的脚本不需要root,那么我建议您在设置特权端口套接字后使用setuid/setgid 删除特权;
这里已经详细回答了;
Dropping Root Permissions In Python
编辑:OP 提到创建的pyc 文件仍然具有root 权限。您可以使用 suid 位 (chmod u+s script.py) 然后 setuid(0) 在运行时获得 root 权限,确保文件所有权不是 root。仅为文件所有者设置 suid 位也意味着其他用户不能滥用 suid 位。
【讨论】: