跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Linux 权限概念与操作详解

Linux 权限体系包含超级用户与普通用户,通过 su 和 sudo 进行身份切换与提权。文件权限分为拥有者、所属组和其他人,对应 rwx 读、写、执行属性。使用 chmod 修改权限(支持符号法与八进制),chown 修改所有者,chgrp 修改所属组。umask 控制新创建文件的默认权限掩码。目录权限中 x 代表进入权限,粘滞位防止共享目录下文件被非拥有者删除。

心动瞬间发布于 2026/3/15更新于 2026/5/2921 浏览
Linux 权限概念与操作详解

1. 用户类型

Linux 下有两种用户:超级用户(root)、普通用户。

超级用户:可以在 Linux 系统下做任何事情,不受限制。 普通用户:在 Linux 下做有限的事情。

超级用户的命令提示符是 #,普通用户的命令提示符是 $。

使用 su 命令切换用户。

  1. 从普通用户切换到 root 用户使用 su root(root 可以省略)。注意此时虽然用户切换了但家目录还是原用户的家目录,相当于在原家目录下换了一个用户。
  2. 从普通用户切换到 root 可以使用 su - 指令,相当于重新登录,家目录发生变化。
  3. 可以使用 exit 或 Ctrl+d 来返回原用户。
  4. 也可使用 su user 直接返回普通用户,家目录不变。

总结:普通用户切换到其他用户 (包括 root) 需要输入目标用户的密码,而 root 用户切换到其它用户直接切换不需要密码。

1.2 Sudo 提权

当我们执行某条指令时需要提升权限怎么办?用指令 sudo command。

为什么提权反而是要求输入自己账户的密码?因为 root 超级用户并非人人可用,我们需要在 sudo 的配置文件 sudoers 中输入自己信息获得认可,相当于白名单。

新建的用户无法执行 sudo,除非将普通用户添加到系统信任的白名单里面。

查看配置文件权限,发现只有读权限,所以需要 root 用户来修改。打开配置文件,找到白名单条目,复制并粘贴加入自己的用户名。保存修改时使用 wq! 强制保存退出。

加入白名单后,账号就可以用 sudo 提权以 root 的身份来执行指令。

1.3 权限定义

权限就是一件事是否允许被你做。

  1. 权限认证的是身份(和人有关)。 人(具体用户)包括:root,普通用户。 权限身份 包括:拥有者,所属组,其他人。为什么需要所属组?因为需要组内协同的同时,不给其他人权限。 人和权限身份的关系不是割裂冲突的,而是需要相结合的,权限身份需要一定的人来承担。

  2. 权限也和事物的属性有关。 从文件的属性出发包括:

    • r(read):读取权限,允许用户读取文件内容或列出目录中的文件。
    • w(write):写入权限,允许用户修改文件内容或向目录中添加/删除文件。
    • x(execute):执行权限,允许执行文件(对于目录,表示可以进入该目录)。
    • -:对应的权限位置,没有权限。

2. 文件类型与访问权限

文件类型:

  • -:普通文件:文本,可执行程序,库基本属于普通文件。
  • d:目录文件。
  • b:块设备文件:磁盘文件。
  • c:字符设备文件:键盘,显示器文件。
  • p:管道文件:用来进行通信的。

注意:Linux 系统中文件名后缀没有直接意义(不代表不适用后缀),在 Linux 系统上运行的其他软件可能需要后缀如编译器 gcc。

通过 ls -l 查看文件详细信息,可得文件对应部分的属性。

  1. 可以发现权限身份信息中没有其他人的信息,因为用户在访问文件前需要登录,访问时比对权限身份若既不是拥有者也不是所属组,那么就是其他人。其他人的信息太多所以没必要列举,另外 root 不受权限约束。
  2. 绿色事物属性的权限部分,人的权限身份和事物的属性结合起来了,每个位置是什么含义都是确定的,第一个为读,第二个为写,第三个为可执行,每个位置只有是或否具有该权限。

3. 权限设置与修改

3.1 chmod 命令

使用 chmod 指令,全称是 change mode,可对文件和目录的权限进行修改。 格式:chmod [参数] 权限 文件名

  • -R:递归修改目录文件的权限。 说明:只有文件的拥有者和 root 才可以改变文件的权限。

  • u(user):文件或目录的所有者。

  • g(group):文件或目录所属组的成员。

  • o(others):其他用户。

  • a(all):所有用户。

可用符号来修改:

  • +:添加权限。
  • -:移除权限。
  • =:设置权限(覆盖现有权限)。

注意:只有文件拥有者和 root 才可以改变文件的权限。

将上述的参数和权限名组合起来使用指令。

对单个权限身份的属性进行添加。 对单个权限身份的属性进行移除。 对多个权限身份的属性进行添加。 三个权限身份间要用 , 相隔,也等价于 a+rwx。 同理只要把 + 变成 - 可以实现单个或多个权限身份的属性移除,同时属性 ± 的数量也可以自己控制。

3.1.2 权限表示法

由于每一个属性只存在具有或没有权限的两种状态,所以可以用二进制来表示每一属性的状态,有三个属性,三位刚好可以用 8 进制来表示三个属性各种状态的组合。

例如全部移除。 全部添加。

3.2 chown 命令

功能:修改文件的拥有者。 格式:chown [参数] 用户名 文件名

作为普通用户没权限直接修改文件。 需要 root 权限,或普通用户使用 sudo 提升权限执行该指令。

注意:修改文件拥有者后,自己的身份权限变成所属组。

3.3 chgrp 命令

功能:修改文件或目录的所属组。 格式:chgrp [参数] 用户组名 文件名 常用选项:-R 递归修改文件或目录的所属组。

同理可得相同操作,可在更改拥有者后更改所属组,完成后自己的身份权限变成其他人。普通用户没权限更改,需要 sudo 提权或使用 root 超级用户。

可以使用 chown 拥有者:所属组 文件或目录,一次性更改人的权限信息。 chgrp 不能进行该操作。

3.4 权限冲突处理

进行身份认证的时候,只能选择一个角色进行认证。

文件拥有者和所属组都是 ywb,所以从前往后就只认证 ywb 为拥有者,不再往后认证。

3.5 默认权限与 Umask

知识储备:默认普通文件的起始权限是 666,二进制为 110 110 110; 目录是 777,二进制为 111 111 111。

我们创建时所看到的: 普通文件是 664,二进制为 110 110 100。 目录文件是 775,二进制为 111 111 101。 最终权限与起始权限不同中间肯定发生了某种转化,了解权限掩码。

3.5.1 Umask 掩码

凡是在 umask 中出现的权限,不会在最终的文件权限中出现。

普通用户默认的 umask 为 0002,第一位代表八进制数不计入计算。 超级用户默认掩码值为 0022。

最终权限 = 起始权限 & (~umask),还可以通过 umask 0xxx 来设置掩码。

权限掩码的应用:重要!!! 当我们想或不想让创建的文件或目录具有某种权限,那么就更改对应的权限掩码,应为最终权限需要经过与运算所以会遵循上述所说在 umask 出现过的权限不会在最终文件中出现。

3.5.2 File 命令

功能说明:辨识文件类型。 语法:file [选项] 文件或目录…

常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z 尝试去解读压缩文件的内容。

4. 目录权限

  • r: 读权限并不会影响我们进入目录,但限制我们查看目录下文件列表。
  • w: 是否允许我们在当前目录下进行创建、更改、删除。
  • x: 如果目录没有可执行权限,则无法 cd 到目录中。

普通用户自己的家目录权限是 700,在各自家目录创建的文件,别人都看不见。 但是有时多个用户间需要文件数据的共享,所以这就要求所建立的共享文件,不能在任何一个人的家目录下可以在根目录下创建共享目录,作为共享用户的我们身份权限都为其他人,只需通过根目录进行其他人权限的添加即可。 这里会有一个问题? 通过测试,发现属于自己的文件在共享文件中可以被其他人删除,这说明一个文件能否被删除,并不由文件本身决定,而是由这个文件所处的目录决定。 可以通过修改目录其他用户的写权限来禁止删除他人文件操作,但同时也禁止了在该目录下创建文件,失去了共享目录的意义。 需要我们引入一个新的权限位—粘滞位。

在根目录下创建共享目录需要 root 用户,其他用户没有读写权限。

注意: 目录的可执行权限是表示你可否在目录下执行命令。如果目录没有 -x 权限,则无法对目录执行任何命令,甚至无法 cd 进入目,即使目录仍然有 -r 读权限(易错,认为有读权限就可以进入目录读取目录下的文件)。

4.1 粘滞位

t 就是粘滞位,添加之后原来的 x 变为 t,t 是一种特殊的可执行权限,允许用户新建文件,但禁止互删。

粘滞位意义: 一般给共享目录设置,大家可以在共享目录中进行各自文件的增删查改,只允许文件拥有者或 root 能删这个文件,其他人不允许,t 是一种特殊的 x 权限。

我们不一定需要自己在根目录下创建共享目录,系统中自带了一个共享目录 tmp,唯一一个有粘滞位的目录并且所有权限打开,可以将临时文件存入其中。

目录

  1. 1. 用户类型
  2. 1.2 Sudo 提权
  3. 1.3 权限定义
  4. 2. 文件类型与访问权限
  5. 3. 权限设置与修改
  6. 3.1 chmod 命令
  7. 3.1.2 权限表示法
  8. 3.2 chown 命令
  9. 3.3 chgrp 命令
  10. 3.4 权限冲突处理
  11. 3.5 默认权限与 Umask
  12. 3.5.1 Umask 掩码
  13. 3.5.2 File 命令
  14. 4. 目录权限
  15. 4.1 粘滞位
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 近五年体内微纳米机器人赋能肿瘤精准治疗综述:聚焦 GBM
  • OpenCowork 评测:Windows 本地 AI 助手与飞书集成指南
  • OpenClaw 配置与 QQ 机器人接入指南
  • GLM-4.6V-Flash-WEB API 额度管理与本地部署指南
  • Windows 11 国内快速安装 WSL Ubuntu 22.04 三种方法及离线包下载
  • 扣子(Coze)平台入门与 AI Bot 开发实战指南
  • OpenClaw WebUI Chat 工作流程及核心组件
  • 前端监控实战:错误、性能与用户行为监控方案
  • 2026 年 11 款开源及免费项目管理工具选型对比与优劣分析
  • Python 爬虫入门实战:从请求到数据保存
  • OpenClaw 国内安装与服务器部署及飞书对接教程
  • LLaMA-Factory 项目介绍与安装部署
  • Python 网络爬虫实战:批量抓取网页图片示例
  • SpringBoot 整合 Neo4j 图数据库实战指南
  • GLM-CookBook:智谱 GLM 大模型 API 入门指南
  • Spring MVC 全面详解:Java Web 开发框架
  • Qwen3.5 开源模型详解:参数对比与全场景选型指南
  • Sora 火爆背后:国内真正合格的 AI 产品经理为何稀缺?
  • 程序员转行大模型领域的挑战与准备
  • C++ 模板基础入门

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online