【Linux体系】权限

[复制链接]
发表于 2026-10-3 22:07:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

权限是理解 Linux 运行机制的一把钥匙。它和 Windows 差别很大:Linux 严格意义上的「系统」是内核,普通用户不能直接碰内核,得通过 shell 这个外壳来沟通。本文从 shell 讲起,把两种用户、九位权限、chmod/chown/chgrp/umask、目录权限和粘滞位一次讲透。

shell 命令以及运行原理

Linux 内核(kernel)普通用户无法直接使用,需要通过 kernel 的外壳程序也就是 shell 来与内核沟通。Shell 最简单的定义是命令行解释器(command interpreter),干两件事:把用户的命令翻译给内核处理,再把内核的处理结果翻译回用户。

对比 Windows GUI:我们用 Windows 不是直接用内核,而是通过图形接口点来点去(比如双击 D 盘盘符就跑起一个应用)。Linux 的 shell 起的是同样的作用——分析指令交给内核,内核跑完结果再由 shell 呈现给用户。

Linux 权限的概念

Linux 下有两种用户:

  • 超级用户(root):可以做任何事,不受限制,命令提示符是 #。
  • 普通用户:做事情受限,命令提示符是 $。

切换用户的命令是 su [用户名]:从 root 切到普通用户写 su user;从普通用户回 root 写 su root(root 可省略),系统会提示输入 root 口令。

权限管理

文件访问者分类

  • u—User:文件和目录的所有者。
  • g—Group:所有者所属组的其他用户。
  • o—Others:其他用户。

文件类型

  • d 文件夹
  • - 普通文件
  • l 软链接(类似 Windows 快捷方式)
  • b 块设备文件(硬盘、光驱等)
  • p 管道文件
  • c 字符设备文件(屏幕、串口等)
  • s 套接口文件

三种基本权限

  • 读(r/4):对文件是读取内容,对目录是查看目录信息。
  • 写(w/2):对文件是修改内容,对目录是删除、移动目录内文件。
  • 执行(x/1):对文件是执行,对目录是进入目录。
  • - 表示不具有该项权限。

权限既能用字符显示,也能用八进制数值显示,两者等价。

chmod:设置访问权限

格式:chmod [参数] 权限 文件名,常用选项 -R 递归修改目录内文件权限。注意,只有文件拥有者和 root 能改文件权限。

写法一是「用户符号 + 权限字符」:

  • + 向权限范围增加某项权限
  • - 取消某项权限
  • = 赋予某项权限

用户符号:u 拥有者、g 同组用户、o 其他用户、a 全部用户。

chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
chmod a=x /home/abc.txt

写法二是三位八进制数字:

chmod 664 /home/abc.txt
chmod 640 /home/abc.txt

chown 与 chgrp

chown 修改文件拥有者,格式 chown [参数] 用户名 文件名:

chown user1 f1
chown -R user1 filegroup1

chgrp 修改文件或目录的所属组,格式 chgrp [参数] 用户组名 文件名,-R 为递归:

chgrp users /abc/f2

umask:权限掩码

新建文件默认权限是 0666,新建目录默认 0777,但你实际看到的往往不是这两个值——因为创建时还要受 umask 影响,实际权限是「默认权限 & ~umask」(mask 与 umask 取反后按位与)。

格式是 umask 权限值。超级用户默认掩码 0022,普通用户默认 0002。

umask 755     # 设置
umask         # 查看
umask 044     # 设置

file:辨识文件类型

格式 file [选项] 文件或目录…,常用选项:

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

用 sudo 分配权限

改 /etc/sudoers 文件来分配:

chmod 740 /etc/sudoers
vi /etc/sudoers

格式为「担当权限的用户 登录的主机=(执行命令的用户)命令」。授权后用 sudo -u 用户名 命令 调用:

sudo -u root /usr/sbin/useradd u2

目录的权限

  • 没有可执行权限:无法 cd 进目录。
  • 没有可读权限:无法用 ls 等命令查看目录内容。
  • 没有可写权限:无法在目录里创建或删除文件。

粘滞位

给目录加粘滞位(chmod +t)之后,该目录下的文件只能由 root、目录所有者、文件所有者删除:

chmod +t /home/
ls -ld /home/
# drwxrwxrwt. 3 root root 4096 ... /home/
su - litao
rm /home/abc.c
# rm: 无法删除 "/home/abc.c": 不允许的操作

总结

最容易踩的坑是目录权限:没有 -x 就完全进不去目录,哪怕它还有 -r 读权限;反过来有 -x 没 -r,能进去能执行,却列不出目录内容。把「目录看 x、文件看 x、写权限管创建删除」这三条记牢,权限问题基本都能自己排。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表