Linux 权限

Linux 权限基础

Linux 权限系统基于三个核心概念:用户(User)、组(Group)和其他(Other)。每个文件或目录的权限由三组字符表示,分别对应这三类实体的读(r)、写(w)、执行(x)权限:

复制代码
-rw-r--r-- 1 user group 1024 Sep 1 10:00 file.txt
  • 第一组 rw-:所有者权限(可读可写)
  • 第二组 r--:组权限(仅可读)
  • 第三组 r--:其他用户权限(仅可读)

权限类型说明

读权限(r)

  • 文件:允许查看文件内容
  • 目录:允许列出目录下的文件(如 ls 命令)

写权限(w)

  • 文件:允许修改文件内容
  • 目录:允许创建/删除目录内文件(需同时具备执行权限)

执行权限(x)

  • 文件:允许作为程序执行(如脚本或二进制文件)
  • 目录:允许进入目录(如 cd 命令)

权限修改方法

数字模式(Octal) 通过三位八进制数设置权限,每位数字对应 用户|组|其他 的权限总和:

  • 4 = 读(r)
  • 2 = 写(w)
  • 1 = 执行(x)

示例:

复制代码
chmod 755 file.txt  # 用户:rwx,组:r-x,其他:r-x

符号模式 使用 u/g/o/a 和 +/-/= 修改权限:

复制代码
chmod u+x script.sh  # 给用户添加执行权限
chmod go-w file.txt  # 移除组和其他用户的写权限

特殊权限

SUID(Set User ID)

  • 以文件所有者身份执行(如 /usr/bin/passwd)

  • 设置方法:

    复制代码
    chmod u+s file  # 符号模式
    chmod 4755 file # 数字模式(4开头)

SGID(Set Group ID)

  • 对目录:新建文件继承目录的组

  • 设置方法:

    复制代码
    chmod g+s dir   # 符号模式
    chmod 2775 dir  # 数字模式(2开头)

Sticky Bit

  • 仅目录有效,限制用户只能删除自己的文件(如 /tmp)

  • 设置方法:

    复制代码
    chmod +t dir    # 符号模式
    chmod 1777 dir  # 数字模式(1开头)

权限查看与验证

查看详细权限

复制代码
ls -l file      # 查看文件权限
ls -ld dir      # 查看目录权限(不显示内容)
stat file       # 显示权限数字格式

验证权限

复制代码
test -r file && echo "可读"   # 检查读权限
test -w file && echo "可写"   # 检查写权限
test -x file && echo "可执行" # 检查执行权限

默认权限控制

umask 设置 定义新建文件的默认权限掩码(反码):

复制代码
umask 022       # 默认权限:文件644(rw-r--r--),目录755
umask -S        # 显示符号格式的当前umask

ACL 高级权限控制

设置访问控制列表

复制代码
setfacl -m u:username:rwx file  # 为用户添加权限
setfacl -m g:groupname:r-x dir  # 为组添加权限
getfacl file                    # 查看ACL权限
相关推荐
wuminyu3 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
海宇AI3 小时前
零信任架构实战:基于海宇个人风险报告构建自动化分期商城信用额度初审网关
运维·人工智能·架构·自动化
IMPYLH4 小时前
Linux 的时间为什么会被拨回去
linux·运维·服务器
2601_963282774 小时前
寒地窄带通信工程实践:黑龙江哈尔滨对讲机选型、组网与合规运维总结
运维·服务器·网络
叼烟扛炮5 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
xbzb6 小时前
OpenStack 网络管理(理论):Linux 网络虚拟化是 Neutron 的地基
linux·服务器·网络·openstack·network·neutron
我要见SA姐16 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·数据库·机器学习·oracle·回归
Android系统攻城狮7 小时前
Linux FFmpeg深度解析之avcodec_flush_buffers调用流程与实战(十九)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频进阶
水饺编程8 小时前
第2章:Linux 基础,解压缩【.tar.bz2】压缩包文件
linux·c语言·汇编
Y3815326628 小时前
用 httpx 写 SerpBase 异步客户端:连接池与超时配置
运维·服务器·数据库