插件窝 干货文章 linux怎么设置不允许更改权限

linux怎么设置不允许更改权限

权限 文件 文件名 用户 655    来源:    2025-05-03

在Linux系统中,可以通过以下几种方式限制用户或进程更改文件/目录权限的能力:

1. 使用chattr设置不可变属性(最严格限制)

sudo chattr +i 文件名
  • 效果:该文件将不能被修改、删除、重命名,也不能创建指向它的链接,包括不能更改权限
  • 取消设置:sudo chattr -i 文件名
  • 注意:需要root权限操作

2. 设置只读挂载

sudo mount -o remount,ro 挂载点
  • 效果:整个文件系统变为只读,无法更改任何文件权限

3. 权限管理(基础方法)

chmod 555 文件名  # 所有用户只有读和执行权限
chmod a-w 文件名  # 所有用户去除写权限
  • 效果:防止普通用户修改文件(但root用户仍可修改)

4. 使用SELinux/AppArmor

  • 配置安全策略限制特定用户/进程修改权限的能力
  • 示例(SELinux): bash chcon -t unconfined_exec_t 文件名 # 设置安全上下文 setenforce 1 # 强制模式

5. 文件系统ACL控制

setfacl -m u:用户名:r-- 文件名
  • 效果:限制特定用户只有读取权限

6. 内核级保护(针对系统关键文件)

echo 1 > /proc/sys/fs/protected_regular
echo 1 > /proc/sys/fs/protected_fifos

最佳实践建议:

  1. 对系统关键文件使用chattr +i
  2. 对普通重要文件使用chmod 555
  3. 结合SELinux/AppArmor做进程级限制
  4. 通过用户组权限管理(将文件归属特定管理组)

注意:root用户始终可以绕过这些限制(除了内核级保护),真正的安全需要结合完整的权限管理体系。