是否可以在没有该选项的情况下安装单个文件夹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)
)来控制谁可以执行这些文件。如果“其他人”根本不需要访问其中的任何文件,您可以使用该目录的权限进行操作。