☰
【Linux系统篇】权限
2026/10/11 10:43:52 网站建设 项目流程

本文将在前面 Linux 基础指令的基础上,为大家讲解 Linux 权限的核心概念,以及文件与目录的权限管理相关知识。

目录

1.权限的概念

2.权限的管理

1.文件访问者的分类(人)

2.文件类型和访问权限

3.文件权限的表示方法

4.文件访问权限的相关设置方法

3.file指令

4.目录的权限

5.关于权限的总结


1.权限的概念

Linux 是多用户操作系统,不同用户对文件拥有不同访问权限,用来保证系统安全,防止普通用户随意修改系统文件。

Linux 文件权限分为三类角色:文件所有者、所属组用户、其他用户。每种角色具备读 (r)、写 (w)、执行 (x) 三种权限。

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

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用su user。
要从普通用户user切换到root用户则使用su root(root可以省略),此时系统会提示输入root用户的密码。

命令 su [用户名] 切换用户,当前工作目录不变

命令 su - [用户名] 切换用户,重新登陆

因为普通用户切换到root用户是需要填写管理者密码,有的时候普通用户不知道管理者密码,或者只需要临时获取管理者的权限,就可以在执行的命令前加上 sudo。

命令 sudo :临时获取管理者的权限

2.权限的管理

1.文件访问者的分类(人)

  • 文件和文件目录的所有者:u--User
  • 文件和文件目录的所有者所在的组的用户:g--Group
  • 其它用户:O---Others

2.文件类型和访问权限

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

基本权限:

读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息

的权限

写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内

文件的权限

执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权

限

“-”表示不具有该项权限

3.文件权限的表示方法

1. 字符表示

r读、w写、x执行,-代表没有对应权限。例如:-rwxr-xr--

  • 所有者:rwx(可读、可写、可执行)
  • 所属组:r-x(可读、不可写、可执行)
  • 其他用户:r--(仅可读)

2. 八进制数字表示

权限可以换算成数字:r=4,w=2,x=1,同一类用户权限数值相加。

  • rwx = 4+2+1 = 7
  • rw- = 4+2+0 = 6
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4

示例:rwxr-xr--拆分为 7 5 4,权限数字就是754。

4.文件访问权限的相关设置方法

1.chmod

功能:设置文件的访问权限
格式:chmod [参数] 权限文件名
常用选项:
R->递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式:
用户表示符+ - = 权限字符

  • +: 向权限范围增加权限代号所表示的权限
  • -: 向权限范围取消权限代号所表示的权限
  • =: 向权限范围赋予权限代号所表示的权限

用户符号:

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

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

三位8进制数字
实例:
chmod 664 /home/abc.txt
chmod 640/home/abc.txt

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

实例:
chown user1 f1
chown -R user1 filegroup1
也可以同时修改所属组

chown user1:group1 test.txt将 test.txt 所有者改为 user1,所属组改为 group1

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

实例:chgrp users /abc/f2

4. umask
功能:

  • 查看或修改文件掩码
  • 新建文件夹默认权限=0666
  • 新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是:mask&~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。


3.file指令

file命令用来查看文件的实际类型,Linux 不依靠后缀名判断文件类型。

示例:file test.sh可以识别普通文件、目录、可执行程序、脚本、压缩包等。

4.目录的权限

我们先通过示例来看一下目录的权限:

  • 可执行权限:如果目录没有可执行权限,则无法cd到目录中
  • 可读权限:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容。
  • 可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件

通常这里会有一个问题就是,只要该目录对其他人有w权限,就可以随意的删除该目录的文件,这显然是不合理的,为解决这个问题,引出一个概念:粘滞位

粘滞位是一种特殊的目录权限,只对目录生效,对普通文件无效。当目录设置了粘滞位之后,目录内的文件,只有文件所有者、root 用户才能够删除或重命名该文件;就算其他用户对这个目录拥有 w 写权限,也不能删除别人创建的文件。

典型例子:Linux 系统的/tmp临时目录,默认就开启粘滞位,所有用户都可以在里面创建临时文件,但每个人只能删除自己的文件,不能删掉其他人的文件。

查看粘滞位

执行ls -l,目录权限的最后一位如果是t,就代表开启了粘滞位。示例权限:drwxrwxrwt,末尾t表示粘滞位已设置。

设置 / 取消粘滞位命令

# 给目录添加粘滞位 chmod +t testdir # 移除目录粘滞位 chmod -t testdir

5.关于权限的总结

  • 文件权限:r 读取文件内容,w 修改文件内容,x 代表文件可以作为程序执行。
  • 目录权限:r 查看目录内文件列表,w 增删 / 改名目录中的文件,x 允许进入目录。
  • 权限分三类角色:所有者、所属组、其他用户,独立控制。
  • root 超级用户不受文件权限约束,拥有最高权限。
  • 修改权限使用chmod;修改文件归属使用chown。

以上就是有关Linux 的权限的介绍。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询