当前位置:首页 > Linux > 正文

怎么设置Linux文件权限

Linux权限设置使用 chmod命令修改文件权限,常用数字法(如755)或符号法(如u=rwx),权限分为读(r=4)、写(w=2)、执行(x=1),分配给所有者(u)、用户组(g)和其他用户(o)。

Linux权限设置指南:从基础到实战

Linux权限系统是多用户环境的核心安全机制,通过精细的权限控制保护文件不被未授权访问,本指南将详解权限设置方法,助您掌握系统安全管理精髓。


权限基础概念

  1. 权限类型

    • 读(r):查看文件内容/目录列表
    • 写(w):修改文件/创建删除目录内文件
    • 执行(x):运行程序/进入目录
  2. 权限对象

    • 用户(Owner):文件创建者
    • 组(Group):共享权限的用户组
    • 其他(Others):系统所有其他用户
  3. 两种表示法

    # 符号表示(9位字符)
    -rwxr-xr--   # 用户可读写执行,组可读执行,其他仅可读
    # 数字表示(三位八进制数)
    755 = rwxr-xr-x

查看权限

使用 ls -l 查看详细信息:

怎么设置Linux文件权限  第1张

$ ls -l backup.sh
-rw-r--r-- 1 user dev_team 1024 Jun 10 10:30 backup.sh
  • 第1位: 表示普通文件(d=目录,l=链接)
  • 2-4位:用户权限(rw-
  • 5-7位:组权限(r--
  • 8-10位:其他权限(r--

修改权限(chmod命令)

方法1:数字模式(推荐)

# 设置日志文件仅用户可读写
chmod 600 /var/log/app.log
# 设置脚本所有人可执行
chmod 755 backup.sh  # 等同于 u=rwx,go=rx

常用数字组合
| 权限 | 用户 | 组 | 其他 | 适用场景 |
|——|——|—-|——|———-|
| 755 | rwx | rx | rx | 可执行程序 |
| 644 | rw- | r- | r- | 配置文件 |
| 700 | rwx | — | — | 私有目录 |

方法2:符号模式

# 添加组写权限
chmod g+w report.docx
# 移除其他用户所有权限
chmod o= project/
# 同时设置多对象
chmod u=rwx,g=rx,o= install.sh

操作符说明

  • 添加权限
  • 移除权限
  • 精确设置权限

变更文件归属

  1. 修改所有者(chown)

    # 变更文件所有者
    sudo chown john database.db
    # 递归变更目录所有者
    sudo chown -R jenkins /opt/build/
  2. 修改所属组(chgrp)

    # 变更文件组
    sudo chgrp developers app.py
    # 同时修改所有者和组
    sudo chown deploy:deploy /var/www/

高级权限管理

  1. 默认权限(umask)

    umask 022    # 新建文件默认权限644(666-022)
    umask 077    # 私有权限(仅用户可访问)
    # 永久生效:写入 ~/.bashrc 或 /etc/profile
  2. 特殊权限

    • SUID(4):以文件所有者身份执行
      chmod u+s /usr/bin/passwd  # 设置SUID
    • SGID(2):目录内新建文件继承组ID
      chmod g+s /shared_team/  # 设置SGID
    • Sticky Bit(1):防目录内文件被他人删除
      chmod +t /tmp/  # 经典案例:/tmp目录

实战场景示例

  1. 网站目录安全配置

    sudo chown -R www-data:www-data /var/www/
    sudo chmod 755 /var/www/html      # 目录可访问
    sudo chmod 644 /var/www/html/*.html # 静态文件只读
  2. 共享开发目录

    sudo mkdir /dev_projects
    sudo chown :dev_team /dev_projects
    sudo chmod 2775 /dev_projects     # SGID+组读写
  3. 敏感文件保护

    chmod 700 ~/.ssh/         # 仅用户访问
    chmod 600 ~/.ssh/id_rsa   # 私钥禁止他人读

安全最佳实践

  1. 最小权限原则:仅授予必要权限
  2. 定期审计:使用 find 检查异常权限
    find / -perm -4000 -ls   # 查找所有SUID文件
  3. 避免777权限chmod 777 是重大安全风险
  4. 隔离用户数据:用组权限替代全局可写

关键提醒:权限操作需谨慎!错误设置可能导致服务崩溃或安全破绽,生产环境建议先在测试环境验证。


引用说明

  • Linux man-pages 官方文档:man chmod, man chown
  • Filesystem Hierarchy Standard (FHS) 3.0
  • OpenSSH安全指南:openssh.com/security.html
0