chmod - 更改文件的权限

chmod - 更改文件的权限

我有一个Python 虚拟环境,Python 可执行文件位于该/bin目录中。在这个 virtualenv 中,我将不得不执行一些不安全的代码,这可能会损坏我的系统。我尝试chmod a-r在 virtualenv 上进行操作,现在没有人可以在那里写入,但其父目录现在不受保护。
所以我想我可以更改 的权限/bin/python,以便它无法写入任何地方,我该怎么做?
我尝试过chmod a-r bin/python,但即使在环境之外,仍然允许删除文件和目录。

答案1

首先,chmod a-r bin/python不阻止 python 删除文件。它可以防止非所有者或不属于正确组的任何人读取该文件。

如果您希望在“监狱”中运行不安全的代码,我建议使用chroot监狱。请记住,为了 chroot 有效运行,python 可执行文件不应在 root 权限下运行。

答案2

Python 将在调用它的用户的权限下运行,因此您永远无法限制它可以触摸、操作和读取的内容。

答案3

实际上,chmod a-r bin/python它会阻止文件的所有者、文件组中的用户以及所有其他用户读取该文件(当然超级用户除外)。chmod o-r bin/python将阻止除所有者和文件组中的用户之外的所有用户读取该文件。可执行文件的文件权限不会影响其读取或编辑其他文件的能力。文件权限仅决定哪些用户可以读取、写入和执行其所应用的文件(以及其他一些事情)。

答案4

我看到几个选项:

  • 使用虚拟机
  • 在 chroot 内运行
  • 在不同用户下运行
  • 使用类似 apparmor 的 LKM 进行限制。

它们是兼​​容的,因此您可以应用多个。

如上所述,chroot 或其他用户不会阻止网络(ab)使用。

另外,请注意,对 /usr/bin/python 施加的限制将影响您运行的所有 python 程序。您可能有兴趣使用不同的文件名进行锁定而不影响系统的其余部分。

相关内容