linux磁盘访问策略需分层控制:挂载时启用noexec,nosuid,nodev等内核级约束,结合acl细粒度授权及selinux/apparmor进程级隔离,并通过findmnt、find和getfacl定期审计验证最小权限落地。

配置 Linux 磁盘设备的访问策略,核心在于分层控制:从物理挂载权限、文件系统级约束,到用户/组粒度的细粒度授权。不靠单一手段,而靠组合策略堵住常见越权路径。
分区挂载时启用安全选项
挂载磁盘时直接限制执行与提权能力,是最基础也最有效的防线。
-
禁用 setuid 和执行权限:对 /tmp、/var、/home 等非系统关键目录所在分区,挂载时加
noexec,nosuid,nodev。例如:
/dev/sdb1 /data ext4 defaults,noexec,nosuid,nodev 0 0
修改/etc/fstab后运行mount -a生效。 -
只读挂载敏感分区:如固件区(/boot)、配置模板区或审计日志归档区,用
ro挂载,防止意外或恶意修改。 -
限制挂载传播:在容器或共享环境中,添加
private或slave选项,避免子挂载影响主系统。
启用并规范 ACL 权限管理
传统 rwx 权限无法满足多角色协作场景,ACL 提供按需授权能力,但需谨慎使用。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
-
先确认文件系统支持:运行
mount | grep "acl",若无输出,需在/etc/fstab对应行追加acl,再mount -o remount /path。 -
用默认 ACL 控制继承行为:对共享目录(如
/shared)设置默认权限,确保新文件自动获得合理权限:
setfacl -d -m u:alice:rw,g:team:r /shared -
避免混用 chmod + ACL:ACL 的 mask 会受 chmod 影响。设完 ACL 后,如需调整权限,优先用
setfacl -m m::rwx显式重置 mask,而非直接 chmod。
结合强制访问控制(SELinux/AppArmor)
当需要进程级隔离(如数据库只能读特定磁盘路径、Web 服务禁止写日志到数据区),传统权限和 ACL 不足,必须引入 MAC。
-
为挂载点打 SELinux 上下文:比如将数据盘挂载到
/data/db,可标记为system_u:object_r:mysqld_db_t:s0,再配合策略限制仅 mysqld 进程能访问;
命令示例:
semanage fcontext -a -t mysqld_db_t "/data/db(/.*)?"
restorecon -Rv /data/db - AppArmor 路径约束更直观:在 profile 中明确声明进程允许读写的磁盘路径,超出即拒绝,无需依赖用户身份。
定期审计与最小权限落地
策略不是设完就一劳永逸,必须验证是否真正生效,并持续收紧。
-
检查挂载选项是否生效:用
findmnt -D /path查看实际挂载参数,确认noexec等未被覆盖。 -
扫描高危权限文件:运行
find /data -type f -perm -4000 -o -perm -2000 2>/dev/null找出所有 setuid/setgid 文件,评估是否必要。 -
ACL 审计简化命令:用
getfacl -R /data 2>/dev/null | grep -E "^\s*#|user:|group:" | head -20快速抽检是否存在过度授权条目。










