不使用 noexec 挂载文件夹

不使用 noexec 挂载文件夹

是否可以在没有该选项的情况下安装单个文件夹noexec。我遇到一种情况,必须安装服务器上用户主文件夹中的 Web 应用程序才能noexec正确运行,但是,我不想删除对所有用户的限制,而只是针对该用户。

fstab 看起来像这样:

# /dev/sda3       /home           ext3    defaults        0       2
UUID=cae3a489-22c1-43d8-aaf1-27306b32ebb0       /home           ext3    defaults,noexec        0       2

因此,noexec从此处删除将允许所有用户运行可执行文件,并且我需要一个解决方案以仅允许用户运行可执行文件user

答案1

你的意思是你想要消除对 /home 中目录的限制noexec而不在整个分区上删除它?如果是这样,绑定安装目录并使用默认选项重新安装它可能会起作用。但请自行测试。下面是一个肮脏的黑客,似乎可以使用 EXT4 工作,但如果您可以将 webapp 目录绑定安装在其自身之上的某个位置,它可能会更干净/更安全/更好。从 fstab 挂载完成后,这必须在 shell 脚本中运行:

mount --bind /home/user/webapp /home/user/webapp
mount /home/user/webapp -oremount,defaults

答案2

网络应用程序不应该从/home...运行,它需要如何noexec正确运行?如果它不需要在那里运行任何东西,它不应该尝试这样做,并且该标志在这种情况下根本没有区别。

您可以使用例如 SELinux 标签来强制执行您想要的限制,但这并不容易。或者,您可以使用文件的 ACL 和权限(请参阅acl(7)setfacl(1))来控制谁可以执行这些文件。如果“其他人”根本不需要访问其中的任何文件,您可以使用该目录的权限进行操作。

相关内容