【发布时间】:2011-12-27 15:15:44
【问题描述】:
我必须使用 os.chmod 更改可执行文件的文件权限。
我有这个可执行文件,我想更改它的权限,使其无处可写,只能读取和执行。
我怎样才能做到这一点?
谢谢,
魔方
【问题讨论】:
-
chmod不会那样做。您需要的是在沙箱中运行该过程。
标签: python permissions executable chmod
我必须使用 os.chmod 更改可执行文件的文件权限。
我有这个可执行文件,我想更改它的权限,使其无处可写,只能读取和执行。
我怎样才能做到这一点?
谢谢,
魔方
【问题讨论】:
chmod 不会那样做。您需要的是在沙箱中运行该过程。
标签: python permissions executable chmod
我有这个可执行文件,我想更改它的权限,使其无处可写,只能读取和执行
chmod 不是这样工作的 - 它设置文件本身的权限,它不能限制可执行文件可以写入的内容。
【讨论】:
您可以使用chmod 对文件设置的权限影响谁可以读取/写入/执行该文件,而不是通过运行该文件创建的进程具有什么权限。
在 Unix 上,您可以通过使用文件所有者和粘性位来获得某种形式的保护,并在您的文件系统上拥有适当的权限,但这并不容易做到正确并且在 Windows 上不起作用(那里没有粘性位)。
【讨论】:
nobody 并在其上添加一个粘性位,则当您运行该可执行文件时,该进程将启动如同它是由nobody 用户启动的(不管实际启动它的用户是什么)。如果nobody 对您关心的文件/目录没有写入权限,则该进程将无法处理它们。
一些 Linux 或 Unix 用来禁止可执行文件写入内容的解决方法是将该可执行文件 setuid 设置为没有权限的用户(几乎“不存在”),例如 nobody 用户(例如在 Debian 或 Ubuntu 中)。小心并阅读更多关于seteuid & setreuid & capabilities & credentials 的信息(我不知道所有这些系统调用是否都有pythonic接口)。
【讨论】: