文件权限与访问控制

文件权限与访问控制是Linux系统安全的基础机制,通过精细化管理用户、组及其他实体对文件的操作权限,可有效防范未授权访问。本节从基础权限表示与修改、高级权限应用(材料有限暂不展开)、权限审计(材料有限暂不展开)三个维度展开,重点解析权限管理的核心工具与实践方法。

基础权限:表示方法与修改

Linux权限通过符号法数字法两种方式表示,分别对应人类可读格式与系统计算格式。符号法使用u(所有者)、g(所属组)、o(其他用户)、a(所有用户)标识权限对象,通过+(添加)、-(移除)、=(设置)操作权限位(r读、w写、x执行);数字法则将r=4w=2x=1转换为三位数字,每位对应u/g/o的权限总和(如755=rwxr-xr-x)。两种表示方法可通过ls -l命令验证效果,例如执行chmod u=rwx,g=rx,o=r file或等效数字法chmod 754 file后,ls -l输出的权限字段将显示为-rwxr-xr--,其中第一位-表示文件类型,后续三组字符分别对应u/g/o的权限状态。

权限修改的核心工具为chmod,其常见操作包括:

  • 添加权限chmod u+x script.sh为所有者添加执行权限,使脚本可直接运行;
  • 移除权限chmod o-w /sensitive/file移除其他用户的写权限,防止敏感文件被篡改;
  • 递归设置chmod -R 755 /var/www/html递归配置Web目录权限,确保子文件继承rwxr-xr-x权限,兼顾访问性与安全性。

chmod权限操作速查表

  • 符号法优先级:对象(u/g/o/a)→ 操作(+/-/=)→ 权限(r/w/x)
  • 数字法速算:r=4、w=2、x=1,三位数字依次对应u/g/o权限和(如7=4+2+1=rwx,5=4+1=rx)
  • 危险提示:递归修改权限(-R)需谨慎,避免对系统目录误操作导致服务异常

除权限位外,文件的所有者与组是权限生效的前提。chown命令用于修改所有者及组,格式为chown [用户][:组] 文件

  • 修改所有者与组chown -R www-data:www-data /var/www将Web目录递归指定给www-data用户及组,适配Nginx/Apache服务的权限模型;
  • 仅修改组chown :dev /project/code将代码文件组改为dev,使开发组成员获得组权限;
  • 递归操作-R参数同样适用于目录批量修改,确保子文件继承新的所有者属性。

权限管理需遵循“最小权限原则”:仅为必要用户分配所需权限(如普通文件设为644,可执行文件设为755),避免过度开放(如777权限可能导致任意用户篡改文件)。通过chmodchown的组合使用,可构建多层次的访问控制体系,为系统安全奠定基础。