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文章的更多信息.在较旧的内核中它不起作用 – 绑定挂载点始终与底层文件系统具有相同的挂载选项.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...