新手防提权挂载核心是用noexec、nosuid、nodev从源头阻断执行、提权和设备节点攻击,必须写入/etc/fstab永久生效,并通过mount -a和findmnt验证,配合uid/gid/umask控制非linux文件系统权限。

新手配置Linux挂载权限防提权,核心是不依赖默认设置、不靠事后chmod补救,而是从挂载那一刻就切断常见攻击路径。重点不是“怎么让文件可读写”,而是“怎么让它不能被用来提权”。
禁用危险执行与特权继承
对非系统盘(如数据盘、U盘、备份卷)必须加这三个选项:
- noexec:禁止运行任何二进制或脚本,哪怕用户上传了恶意程序也执行不了;
-
nosuid:忽略所有SUID/SGID位,防止普通用户借
/bin/bash或/usr/bin/find等带SUID的程序提权; -
nodev:不识别设备节点,避免在挂载点下伪造
/dev/sda类文件进行内核级攻击。
示例命令:sudo mount -o noexec,nosuid,nodev /dev/sdb1 /mnt/data。别忘了写进/etc/fstab,否则重启就失效。
统一归属与最小化权限掩码
挂载FAT32、exFAT、NTFS这类无原生Linux权限的文件系统时,必须显式指定归属和权限:
- 用
uid=1000,gid=1000把所有文件强制映射到当前普通用户,避免默认归root; - 用
umask=022让新建文件默认为644(只读)、目录为755(可进入); - 若要更严格,改用
umask=077(仅属主可读写),或分别用fmask=133,dmask=022精细控制文件和目录。
NTFS/FAT常用组合:mount -t ntfs-3g -o uid=1000,gid=1000,fmask=133,dmask=022,noexec,nosuid,nodev /dev/sdc1 /mnt/usb。
按用途锁定挂载行为
不同用途的挂载点应有不同策略:
- 静态资源(如网页文件、配置模板):加
ro(只读),防止被篡改; - 临时目录(如
/tmp、/var/tmp):必须加noexec,nosuid,nodev,再配合size=1G限制空间防DoS; - 共享目录(尤其多人可写):Linux 5.12+ 内核可用
nosymfollow禁用符号链接解析,防止跳转到敏感路径。
例如:UUID=xxx /mnt/shared ext4 defaults,nosymfollow,noexec,nosuid,nodev 0 2。
验证与持续生效
配置完别直接关机,做两件事:
- 运行
sudo mount -a重载/etc/fstab,看是否报错; - 用
findmnt -D /mnt/data确认实际生效的选项里包含noexecnosuidnodev; - 测试提权尝试:在挂载点下放一个
test.sh并chmod +x,执行时应提示Permission denied;放一个SUID程序(如cp /bin/bash ./bash && chmod u+s ./bash),执行./bash -p应无法获得root shell。
只要挂载参数写对、fstab配稳、每次重启都生效,就能挡住80%靠挂载点漏洞的提权尝试。











