就像问题一样。是否可以将 noexec 安装的 FS 中的某些可执行文件列入白名单?
例如,我的看起来像这样:
/dev/vg/lv on /tmp type ext4 (rw,noexec,nosuid)
答案1
不。安装选项胜过一切。这就是它们的目的:确保没有任何东西直接从该文件系统执行。
为了对抗noexec
,您可以通过调用其启动器来间接运行大多数程序:
- 如果程序是一个脚本(以舍邦),调用解释器并将脚本作为其第一个参数传递给它。
- 如果程序是动态链接的可执行文件,则调用动态加载程序(例如
/lib/ld-linux.so.2
或/lib64/ld-linux-x86-64.so.2
)并将二进制文件作为其第一个参数传递给它。
如果您安装了文件系统noexec
,则可以使用以下命令查看所有文件都可执行的目录绑定文件系统。但是 Bindfs 不允许为每个文件设置权限。
当然,您可以在其他地方复制该文件并使该文件可执行。
如果文件系统已挂载nosuid
,则无法使文件设置为 setuid。那会破坏安全。要创建 setuid 文件,您需要有权访问所属用户帐户。制作副本并制作 setuid,或者在没有nosuid
选项的情况下重新安装,是唯一的解决方案。