插件窝 干货文章 Linux命令权限是什么

Linux命令权限是什么

权限 文件 所有者 目录 416    来源:    2025-04-27

在Linux系统中,权限(Permissions)是控制用户对文件和目录访问的核心机制。权限分为三类(用户、组、其他),每类包含三种基本操作权限。以下是详细解析:


1. 权限类型

  • 读(r,Read)
    • 文件:可查看内容(如catless
    • 目录:可列出内容(如ls
  • 写(w,Write)
    • 文件:可修改内容
    • 目录:可创建/删除文件(需同时有执行权限)
  • 执行(x,Execute)
    • 文件:可运行(如脚本、程序)
    • 目录:可进入(如cd

2. 权限归属

权限分配给三类身份: - 用户(Owner):文件所有者
- 组(Group):所属用户组
- 其他(Others):非所有者且非组成员


3. 查看权限

使用 ls -l 命令查看权限(示例):

-rwxr-xr-- 1 alice dev 1024 Jan 1 10:00 script.sh
  • 权限符号-rwxr-xr--
    • 第1位:-表示文件,d表示目录
    • 2-4位:用户权限(rwx
    • 5-7位:组权限(r-x
    • 8-10位:其他权限(r--

4. 数字表示法

权限可用3位八进制数表示: - r=4,w=2,x=1
- 示例:rwxr-xr--754
- 用户:4+2+1=7
- 组:4+0+1=5
- 其他:4+0+0=4


5. 修改权限

  • chmod命令

    • 符号模式:
    chmod u+x file.sh    # 给用户添加执行权限
    chmod go-w file.sh   # 移除组和其他用户的写权限
    
    • 数字模式:
    chmod 755 script.sh  # 设置为rwxr-xr-x
    
  • chown命令(修改所有者/组)

    chown alice:dev file.txt  # 修改所有者为alice,组为dev
    

6. 特殊权限

  • SUID(s):以文件所有者身份执行(如/usr/bin/passwd
  • SGID(s):目录中新文件继承组权限
  • Sticky Bit(t):仅允许所有者删除文件(如/tmp
    设置方法:
chmod u+s file    # SUID
chmod g+s dir     # SGID
chmod +t dir      # Sticky Bit

7. 默认权限

  • 新文件权限由umask值决定(默认022,即文件权限644,目录755
  • 查看/修改umask
    bash umask # 查看当前值 umask 027 # 设置新值(文件权限变为640)

8. 权限验证流程

当用户访问文件时,系统按以下顺序检查权限:
1. 用户权限 → 2. 组权限 → 3. 其他权限(匹配即停止)。


常见问题

  • 权限不足错误

    bash: ./script.sh: Permission denied
    

    解决方案:

    chmod +x script.sh
    
  • 目录不可进入:确保对目录有x权限。

掌握权限管理是Linux系统安全的基础,合理分配权限可有效防止未授权访问或误操作。