linux – make / home / tmp noexec nodev没有单独的patition

我需要为根文件系统的某些部分更改一些挂载选项,例如/ tmp / var和/ home(添加nodev,nosuid和quota),但我无法创建单独的分区,而且我没有足够的RAM来mount / tmp as tmpfs.我已经尝试了mount -o bind,noexec,nodev,nosuid / tmp / tmp,但它似乎无法正常工作,因为之后我仍然可以执行来自/ tmp的文件并使设备点头.还有其他办法吗?

解决方法

您可以使用bind和noexec,nosuid选项重新挂载/ tmp,但不能一步完成.由于某些
Linux内核VFS层限制,您必须首先绑定它,然后使用适当的选项重新安装.

root@utemp:/# /tmp/test.sh 
uid=0(root) gid=0(root) groups=0(root)
root@utemp:/# mount -o bind,noexec /tmp /tmp
root@utemp:/# ./tmp/test.sh 
uid=0(root) gid=0(root) groups=0(root)
root@utemp:/# umount /tmp
root@utemp:/# mount -o bind /tmp /tmp
root@utemp:/# mount -o remount,noexec /tmp
root@utemp:/# ./tmp/test.sh 
bash: ./tmp/test.sh: Permission denied
root@utemp:/# umount /tmp

这很不方便 – 在/ etc / fstab中不是一行,而是在系统启动期间每个目录必须调用一些带有两个mount命令的脚本.

有关此LWN文章的更多信息.在较旧的内核中它不起作用 – 绑定挂载点始终与底层文件系统具有相同的挂载选项.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。