Linux 的文件权限与目录配置

一、权限基础概念

Linux 的文件权限与目录配置

  1. 权限分类
  • 文件权限​r(读):查看文件内容w(写):修改文件内容(需配合目录的w权限才能删除文件)x(执行):运行文件(如脚本或二进制程序)​目录权限​r:列出目录内文件列表(需配合x权限才能访问内容)w:在目录内创建/删除/重命名文件x:进入目录或访问其内容
  1. 权限归属
  • 所有者​(User):文件创建者​所属组​(Group):用户所属的组​其他用户​(Others):非所有者且非组成员的用户

二、权限查看与修改

Linux 的文件权限与目录配置

  1. 查看权限

ls -l 文件名 # 输出示例:-rw-r–r–(前10字符,第1字符为类型,后9字符分3组权限)

  • 文件类型:-(普通文件)、d(目录)、l(链接)等
  1. 修改权限
  • 数字表明法​(r=4, w=2, x=1)

chmod 755 file.txt # 所有者rwx,组和其他r-x

  • 符号表明法

chmod u+x script.sh # 为所有者添加执行权限

chmod g-w dir/ # 移除组的写权限

  1. 修改所有者与组

chown newuser:newgroup file.txt # 同时修改所有者和组

chgrp dev_team file.txt # 仅修改所属组

三、特殊权限与高级配置

Linux 的文件权限与目录配置

  1. 特殊权限位
  • SUID​(Set User ID):执行时临时获得所有者权限(如/usr/bin/passwd)

chmod u+s file # 设置SUID位

  • SGID​(Set Group ID):目录下新建文件继承组权限

chmod g+s shared_dir # 设置SGID位

  • 粘滞位​(Sticky Bit):仅允许所有者删除目录内文件(如/tmp)

chmod +t directory # 设置粘滞位

“`[1,6,11](@ref)

  1. ACL(访问控制列表)​
  • 细粒度控制权限:

setfacl -m u:user:rwx file.txt # 为用户添加权限

getfacl file.txt # 查看ACL配置

四、目录配置的特殊性

Linux 的文件权限与目录配置

  1. 目录的x权限
  • 若目录无x权限,即使有r权限也无法进入或访问内容
  1. 目录的w权限
  • 允许删除/重命名目录内文件,即使文件本身无写权限
  1. 典型目录配置示例
  • Web服务器目录​:

chmod 755 /var/www/html # 所有者可执行(运行服务)

chown -R www-data:www-data /var/www/html # 设置Web用户组

  • 共享开发目录​:

mkdir project && chmod 2770 project # SGID + 组用户可写

chgrp dev_team project

五、安全实践与注意事项

  1. 最小权限原则
  • 敏感文件如/etc/shadow应设为600(仅所有者可读写)
  1. 避免危险权限
  • 禁用777权限,尤其是系统目录(如/etc)
  1. 定期检查权限
  • 使用find / -perm -o=w -ls查找可写文件
  1. 路径与绝对路径
  • 相对路径可能因当前目录变化失效,提议使用绝对路径(如/home/user/file)

六、常见问题

  • 权限拒绝错误​:检查权限与所有者,使用namei -l 路径排查路径节点权限
  • 递归修改权限​:

chmod -R 755 directory # 递归设置目录及子文件权限

chown -R user:group dir # 递归修改所有者

通过合理配置权限,可有效保障系统安全与协作效率。提议结合ACL和SELinux等高级机制实现细粒度控制。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
都一群什么人啊啊啊的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容