【Linux系统】Linux 权限

发布于:2025-04-16 ⋅ 阅读:(13) ⋅ 点赞:(0)

多用户计算机系统的管理中,权限 p r i v i l e g e privilege privilege)是指某个特定的用户具有特定的系统资源使用权力,像是文件夹,特定系统指令的使用或存储量的限制。通常,系统管理员 r o o t root root),或者在网络中的网络管理员,对某个特定资源的使用分配给用户不同的权限,系统软件则自动地强制执行这些权限。


一、Linux 用户权限

1. 用户权限

L i n u x Linux Linux 下有两种用户:超级用户 r o o t root root)、普通用户

  1. 超级用户:可以在 l i n u x linux linux 系统下做任何事情,不受限制。(超级用户的命令提示符是 #

  2. 普通用户:在 l i n u x linux linux 下做有限的事情。(普通用户的命令提示符是 $

2. su 命令

命令su [用户名]
功能切换用户

  1. 要从 r o o t root root 用户切换到普通用户 u s e r user user,则使用 su [user name](不需要输密码)。
[root@VM-8-4-centos ~]# su yy
[yy@VM-8-4-centos root]$ whoami
yy
  1. 要从普通用户 u s e r user user 切换到 r o o t root root 用户,则使用 su root r o o t root root 可以省略) / / / su -(会改变目录到家目录,即重新登录账号),此时系统会提示输入 r o o t root root 用户的密码来登录(密码不回显)。
[yy@VM-8-4-centos root]$ su
Password: 
[root@VM-8-4-centos ~]# whoami
root

3. sudo 命令

命令sudo [指令]
功能用来进行指令的短暂提权

我们用普通用户身份(yy)来创建一个文件夹,显示这个文件夹信息的时候会看到是 yy 用户创建的:

[yy@VM-8-4-centos ~]$ mkdir dir_yy
[yy@VM-8-4-centos ~]$ ll
total 4
drwxrwxr-x 2 yy yy 4096 Apr 13 14:44 dir_yy

此时,如果想要使用 root 身份来创建文件夹,除了直接登陆 root 账号,还可以直接使用 sudo 来将要使用 root 权限操作的指令暂时提权(但是刚开始会直接报错,因为 yy 不在能提权的白名单里(sudoers file)):

[yy@VM-8-4-centos ~]$ sudo mkdir dir_root
yy is not in the sudoers file.  This incident will be reported.

此时,我们就要使用 root 用户,来将允许提权操作的用户加到白名单中,以后就可以直接使用 sudo 指令来提权了,将相当于给这个用户直接开了一条绿色通道:

[yy@VM-8-4-centos ~]$ su
Password: 
[root@VM-8-4-centos yy]# vim /etc/sudoers

在这里插入图片描述

添加完后,就可以返回 yy 用户,此时就可以正常进行提权操作了(提权后创建的文件夹就是以 root 用户身份来创建的了):

[root@VM-8-4-centos yy]# su yy
[yy@VM-8-4-centos ~]$ ls
dir_yy
[yy@VM-8-4-centos ~]$ sudo mkdir dir_root
[sudo] password for yy:
[yy@VM-8-4-centos ~]$ ll
total 8
drwxr-xr-x 2 root root 4096 Apr 13 14:47 dir_root
drwxrwxr-x 2 yy   yy   4096 Apr 13 14:44 dir_yy

注意:授权 s u d o sudo sudo 操作的时候是需要输入当前用户的密码,而不是超级用户的密码,因为当前用户已经被超级用户信任过了。


二、Linux 权限管理

1. Linux 权限概念

权限的本质能或不能做某件事,控制用户的行为,防止错误的发生

  1. 权限首先控制的是角色

  2. 权限要求目标必须具备对应的属性

因此, 权限 = 角色 + 目标权限属性 权限=角色+目标权限属性 权限=角色+目标权限属性

由于在 L i n u x Linux Linux 下, 一切皆文件,因此,目标权限的属性即文件的属性

1.1 访问者(人)

访问者分类 访问者功能
u u u —— —— —— U s e r User User 文件和文件目录的所有者(拥有者
g g g —— —— —— G r o u p Group Group 文件和文件目录的所有者所在的组的用户(所属组
o o o —— —— —— O t h e r s Others Others 其他用户( o t h e r other other

在这里插入图片描述

所属组的意义:更精细化的权限管理,首选要有更精细化的身份角色。即开放一个白名单,只开放给所属组的用户,与其他用户分隔开。

1.2 访问权限(事物属性)

访问权限分类 权限功能
r / 4 r/4 r/4 —— —— —— 可读 r e a d read read 具有读取文件内容的权限;具有浏览该目录信息的权限
w / 2 w/2 w/2 —— —— —— 可写 w r i t e write write 具有修改文件内容的权限;具有删除移动目录内文件的权限
x / 1 x/1 x/1 —— —— —— 可执行 e x e c u t e execute execute 具有执行文件的权限;具有进入目录的权限
− - 表示不具有该项权限

在这里插入图片描述

2. 权限的表示方法

字符表示方法 2 2 2 进制表示方法 8 8 8 进制表示方法
− − − --- 000 000 000 0 0 0
− − x --x x 001 001 001 1 1 1
− w − -w- w 010 010 010 2 2 2
− w x -wx wx 011 011 011 3 3 3
r − − r-- r 100 100 100 4 4 4
r − x r-x rx 101 101 101 5 5 5
r w − rw- rw 110 110 110 6 6 6
r w x rwx rwx 111 111 111 7 7 7
[yy@VM-8-4-centos ~]$ ll
total 4
-rw-rw-r-- 1 yy   yy     17 Apr 13 17:08 file.txt
[yy@VM-8-4-centos ~]$ chmod 0 file.txt
[yy@VM-8-4-centos ~]$ ll
total 4
---------- 1 yy yy 17 Apr 13 17:08 file.txt
[yy@VM-8-4-centos ~]$ chmod 421 file.txt 
[yy@VM-8-4-centos ~]$ ll
total 4
-r---w---x 1 yy yy 17 Apr 13 17:08 file.txt

3. 权限的设置

在确定权限信息的时候,系统会先确定用户是谁:拥有者,所属组,还是 o t h e r other other?在 C e n t o s Centos Centos 下,用户角色确定且只确定一次,顺序是:拥有者,所属组, o t h e r other other

3.1 chmod 命令

格式chmod [选项] [命令权限值] [文件名]
功能设置文件的访问权限

常用选项

选项 功能
− R -R R 递归修改目录文件的权限

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

c h m o d chmod chmod 命令权限值的格式:[用户表示符] [操作符] [权限字符]

  1. 用户表示符
用户符号 含义
u u u 拥有者
g g g 拥有者同组用户
o o o 其他用户
a a a 所有用户
  1. 操作符
操作符 含义
+ + + 向权限范围增加权限字符所表示的权限
− - 向权限范围取消权限字符所表示的权限
= = = 向权限范围赋予权限字符所表示的权限

字符表示法:

[yy@VM-8-4-centos ~]$ ll
total 0
-r--rw-r-- 1 yy yy 0 Apr 13 23:54 file.txt
[yy@VM-8-4-centos ~]$ chmod u+w file.txt	# 增加权限
[yy@VM-8-4-centos ~]$ ll
total 0
-rw-rw-r-- 1 yy yy 0 Apr 13 23:54 file.txt	
[yy@VM-8-4-centos ~]$ chmod o-x file.txt 	# 取消权限
[yy@VM-8-4-centos ~]$ ll
total 0
-rw-rw-r-- 1 yy yy 0 Apr 13 23:54 file.txt	
[yy@VM-8-4-centos ~]$ chmod a=x file.txt 	# 赋予权限(覆盖)
[yy@VM-8-4-centos ~]$ ll
total 0
---x--x--x 1 yy yy 0 Apr 13 23:54 file.txt

8 8 8 进制表示法:

[yy@VM-8-4-centos ~]$ chmod 664 file.txt 
[yy@VM-8-4-centos ~]$ ll
total 0
-rw-rw-r-- 1 yy yy 0 Apr 13 23:54 file.txt
[yy@VM-8-4-centos ~]$ chmod 640 file.txt 
[yy@VM-8-4-centos ~]$ ll
total 0
-rw-r----- 1 yy yy 0 Apr 13 23:54 file.txt

3.2 chown 命令

格式chown [选项] [用户名] [文件名]
功能修改文件的拥有者

常用选项

选项 功能
− R -R R 递归修改文件或目录的拥有者

修改文件拥有者:

[yy@VM-8-4-centos ~]$ ll
total 0
-rw-rw-r-- 1 yy yy 0 Apr 13 23:54 file.txt
[yy@VM-8-4-centos ~]$ sudo chown root file.txt	# 将文件拥有者改为root用户
[yy@VM-8-4-centos ~]$ ll
total 0
-rw-rw-r-- 1 root yy 0 Apr 13 23:54 file.txt

修改目录拥有者(递归修改):

[yy@VM-8-4-centos ~]$ ll dir
total 0
-rw-rw-r-- 1 yy yy 0 Apr 14 00:14 test1
-rw-rw-r-- 1 yy yy 0 Apr 14 00:14 test2
[yy@VM-8-4-centos ~]$ sudo chown -R root dir	# 递归修改目录下所有文件拥有者
[yy@VM-8-4-centos ~]$ ll dir
total 0
-rw-rw-r-- 1 root yy 0 Apr 14 00:14 test1
-rw-rw-r-- 1 root yy 0 Apr 14 00:14 test2

3.3 chgrp 命令

格式chgrp [选项] [用户组名] [文件名]
功能修改文件或目录的所属组

常用选项

选项 功能
− R -R R 递归修改文件或目录的所属组
[yy@VM-8-4-centos ~]$ ll
total 0
-rw-rw-r-- 1 root yy 0 Apr 13 23:54 file.txt
[yy@VM-8-4-centos ~]$ sudo chgrp root file.txt	# 将文件所属组修改为root用户
[yy@VM-8-4-centos ~]$ ll
total 0
-rw-rw-r-- 1 root root 0 Apr 13 23:54 file.txt

3.4 umask 命令(缺省权限)

格式umask [权限值]
功能:查看或修改文件掩码。将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。

文件类型 默认权限
新建文件 0666 0666 0666
新建目录 0777 0777 0777

但实际上创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 u m a s k umask umask 的影响。

假设默认权限 m a s k mask mask,则实际创建的出来的文件权限是: m a s k   &   ∼ u m a s k mask\ \&\ \sim umask mask & umask

用户类型 默认掩码 实际创建的文件权限 实际创建的目录权限
超级用户 0022 0022 0022 0644 0644 0644 0755 0755 0755
普通用户 0002 0002 0002 0664 0664 0664 0775 0775 0775
  1. 查看掩码umask):
[root@VM-8-4-centos ~]# umask	# 超级用户
0022
[yy@VM-8-4-centos ~]$ umask	# 普通用户
0002
  1. 修改掩码umask [权限值]):
[yy@VM-8-4-centos ~]$ mkdir a
[yy@VM-8-4-centos ~]$ touch b
[yy@VM-8-4-centos ~]$ ll
total 4
drwxrwxr-x 2 yy yy 4096 Apr 14 13:18 a
-rw-rw-r-- 1 yy yy    0 Apr 14 13:18 b
[yy@VM-8-4-centos ~]$ umask 0777 	# 修改掩码(即修改缺省权限)
[yy@VM-8-4-centos ~]$ mkdir c
[yy@VM-8-4-centos ~]$ touch d
[yy@VM-8-4-centos ~]$ ll
total 8
drwxrwxr-x 2 yy yy 4096 Apr 14 13:18 a
-rw-rw-r-- 1 yy yy    0 Apr 14 13:18 b
d--------- 2 yy yy 4096 Apr 14 13:18 c
---------- 1 yy yy    0 Apr 14 13:18 d

注意:不用担心修改 u m a s k umask umask 掩码是否会存在问题,因为当你重新连接服务器的时候,系统会自动将 u m a s k umask umask 掩码恢复到默认值。


三、目录的权限

目录的权限 功能
可读权限 r r r 如果目录没有可读权限,则无法使用 l s ls ls 等命令查看目录中的文件内容
可写权限 w w w 如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件
可执行权限 x x x 如果目录没有可执行权限,则无法 c d cd cd 到目录中
[yy@VM-8-4-centos ~]$ ll
total 8
drwxrwxr-x 2 yy yy 4096 Apr 14 12:11 dir
-rw-rw-r-- 1 yy yy   24 Apr 14 12:00 file.txt
[yy@VM-8-4-centos ~]$ chmod u-x dir			# 减去可执行权限
[yy@VM-8-4-centos ~]$ cd dir
bash: cd: dir: Permission denied
[yy@VM-8-4-centos ~]$ chmod u-r dir			# 减去可读权限
[yy@VM-8-4-centos ~]$ ls dir
ls: cannot open directory dir: Permission denied
[yy@VM-8-4-centos ~]$ chmod u-w+rx dir		# 减去可写权限,加上可读和可执行权限
[yy@VM-8-4-centos ~]$ ll
total 8
dr-xr-xr-x 2 yy yy 4096 Apr 14 12:11 dir
-rw-rw-r-- 1 yy yy   24 Apr 14 12:00 file.txt
[yy@VM-8-4-centos ~]$ cd dir	# 可以打开目录(可执行)
[yy@VM-8-4-centos dir]$ ls 		# 可以浏览目录(可读)
text.txt
[yy@VM-8-4-centos dir]$ mkdir a
mkdir: cannot create directory ‘a’: Permission denied	# 不能创建目录(不可写)
[yy@VM-8-4-centos dir]$ touch test.cpp
touch: cannot touch ‘test.cpp’: Permission denied		# 不能创建文件(不可写)
[yy@VM-8-4-centos dir]$ rm -rf text.txt
rm: cannot remove ‘text.txt’: Permission denied			# 不能删除文件(不可写)

四、粘滞位

权限标志位 t t t粘滞位)。
特征:只能给需要共享的目录添加粘滞位。
作用:任何一个人都可以在共享目录里创建文件,但又不能让非拥有者删除这个文件。

当一个目录被设置为粘滞位chmod+t),则该目录下的文件只能由:

  1. 超级管理员删除

  2. 该目录的拥有者删除

  3. 该文件的拥有者删除

drwxrwxrwx    2 root root  4096 Apr 14 16:41 tmp_ybc
[yy@VM-8-4-centos /]$ sudo chmod +t tmp_ybc		# 给共享目录添加粘滞位
drwxrwxrwt    2 root root  4096 Apr 14 16:41 tmp_ybc
[bb@VM-8-4-centos tmp_ybc]$ ll
total 0
-rw-rw-r-- 1 yy yy 0 Apr 14 16:48 a
-rw-rw-r-- 1 bb bb 0 Apr 14 16:48 b
[bb@VM-8-4-centos tmp_ybc]$ rm -rf a
rm: cannot remove ‘a’: Operation not permitted	# 非文件拥有者不能删除该文件

总结

通过上述介绍,我们发现,在 L i n u x Linux Linux 系统中,文件和目录的权限控制非常严格。权限分为三种类型: r r r)、 w w w)和执行 x x x)。每个文件和目录都有三个权限级别:拥有者 u u u)、所属组(g)和其他用户( o o o)。通过设置不同的权限,就可以控制谁能对文件或目录执行哪些操作,方便进行管理。


网站公告

今日签到

点亮在社区的每一天
去签到