chmod - 可执行文件的文件权限

0 投票
3 回答
2100 浏览
提问于 2025-04-17 06:10

我需要用 os.chmod 来修改一个可执行文件的权限。
我有这个可执行文件,我想把它的权限改成只能读取和执行,不能写入。
我该怎么做呢?

谢谢,
rubik

3 个回答

1

在一些Linux或Unix系统中,有一种解决办法可以阻止某个可执行文件写入内容,那就是把这个可执行文件的权限设置为一个几乎没有权限的用户,比如说用户(在Debian或Ubuntu中就有这个用户)。不过要小心,建议你多了解一下seteuidsetreuid能力凭证这些内容(我不太确定这些系统调用在Python中是否有对应的接口)。

1

我有一个可执行文件,我想改变它的权限,让它只能读取和执行,不能写入任何地方。

这不是chmod的工作方式——它是用来设置文件本身的权限的,不能限制一个可执行文件可以写入什么地方。

2

你用 chmod 命令设置的文件权限,决定了谁可以读取、写入或执行这个文件,而不是运行这个文件后产生的程序拥有什么权限。

在Unix系统中,你可以通过调整文件的拥有者和“粘滞位”来获得某种保护,并且确保你的文件系统有合适的权限设置。但这并不容易做到,而且在Windows系统上是行不通的(因为Windows没有“粘滞位”这个概念)。

撰写回答