【问题标题】:chmod - file permission on executablechmod - 可执行文件的文件权限
【发布时间】:2011-12-27 15:15:44
【问题描述】:

我必须使用 os.chmod 更改可执行文件的文件权限。
我有这个可执行文件,我想更改它的权限,使其无处可写,只能读取和执行。
我怎样才能做到这一点?

谢谢,
魔方

【问题讨论】:

标签: python permissions executable chmod


【解决方案1】:

我有这个可执行文件,我想更改它的权限,使其无处可写,只能读取和执行

chmod 不是这样工作的 - 它设置文件本身的权限,它不能限制可执行文件可以写入的内容。

【讨论】:

    【解决方案2】:

    您可以使用chmod 对文件设置的权限影响谁可以读取/写入/执行该文件,而不是通过运行该文件创建的进程具有什么权限。

    在 Unix 上,您可以通过使用文件所有者和粘性位来获得某种形式的保护,并在您的文件系统上拥有适当的权限,但这并不容易做到正确并且在 Windows 上不起作用(那里没有粘性位)。

    【讨论】:

    • 谢谢,但我不知道粘性位可以为我做什么。我已经阅读了有关此的 Wikipedia 文章。
    • 如果您将可执行文件的所有者设置为,例如,nobody 并在其上添加一个粘性位,则当您运行该可执行文件时,该进程将启动如同它是由nobody 用户启动的(不管实际启动它的用户是什么)。如果nobody 对您关心的文件/目录没有写入权限,则该进程将无法处理它们。
    【解决方案3】:

    一些 Linux 或 Unix 用来禁止可执行文件写入内容的解决方法是将该可执行文件 setuid 设置为没有权限的用户(几乎“不存在”),例如 nobody 用户(例如在 Debian 或 Ubuntu 中)。小心并阅读更多关于seteuid & setreuid & capabilities & credentials 的信息(我不知道所有这些系统调用是否都有pythonic接口)。

    【讨论】:

      猜你喜欢
      • 2013-12-10
      • 2016-01-20
      • 2012-11-24
      • 2014-03-04
      • 1970-01-01
      • 2014-06-21
      • 2019-01-19
      • 1970-01-01
      • 2017-01-06
      相关资源
      最近更新 更多