本文主要介绍
linux
系统中的权限管理和用户切换机制。权限是限制用户操作的关键,理解和正确使用权限有助于维护系统安全。
前言
本节主要讲解Linux的权限管理。权限是控制用户行为的机制,例如,你可以在力扣上刷题,但不能听音乐,这是由平台的权限设置决定的。如果你是VIP用户,你可以在QQ音乐上听任何音乐,而普通用户只能听非VIP的音乐。
概述
Linux系统中有两种类型的用户:
超级用户(root)
:可以在Linux系统中执行任何操作,不受限制。
普通用户
:在Linux系统中只能执行有限的操作。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
用户切换
用户之间可以通过以下命令进行切换:
命令:
功能:切换到指定用户。
从
用户切换到普通用户
,使用
。从普通用户
切换到
用户,使用
或
,此时需要输入
用户的密码。
示例:超级用户切换到普通用户
从
用户切换到普通用户
:
示例:普通用户切换到超级用户
从普通用户
切换到
用户,直接使用
,并输入
用户的密码:
另一种切换方式
除了
命令,还可以使用
命令。两者的区别在于,前者仅切换用户身份,不改变当前路径,而后者会切换到
用户的家目录。
使用sudo提升权限
普通用户可以通过
来临时提升权限,输入的是普通用户的密码:
初次使用
时会有如下提示:
Linux权限的理解
权限是角色与事物属性的结合。例如,某人有QQ音乐的
会员
身份,可以听会员专享的音乐,这是因为他有会员身份,而不是因为他叫什么名字。
因此,权限 = 角色 + 事物的属性。
Linux权限管理
文件访问者分为:
文件和目录的所有者(u - User)
文件和目录的所有者所在组的用户(g - Group)
其他用户(o - Others)
文件属性可以通过
命令查看,属性从第二个字母开始,三个为一组。
权限字符表示:
:可读
:可写
:可执行
:不具备该权限
权限值:
读(r/4):对文件可读取内容,对目录可浏览信息。
写(w/2):对文件可修改内容,对目录可删除或移动文件。
执行(x/1):对文件可执行,对目录可进入。
文件权限值表示方法:
字符表示法:
8进制数值表示法:
文件类型:
:文件夹
:普通文件
:软链接
:块设备文件
:管道文件
:字符设备文件
:套接口文件
在Linux中讨论权限时,首先要确定当前用户是谁,然后查看文件的拥有者和所属组,判断当前用户的身份,最后查看该身份下的权限。权限与身份和文件属性相关。
权限修改
使用
命令可以设置文件的访问权限:
格式:
常用选项:
- 递归修改目录文件的权限
只有文件的拥有者和
用户可以改变文件的权限。
示例:对文件进行权限修改
初始权限:
Docker Desktop(linux)
当前 Docker 最新稳定版本之一,主要针对稳定性和兼容性进行了修复优化,适合生产环境与日常开发使用。该版本继续强化 AI 开发支持、容器日志管理以及 Docker Engine 的安全能力,对 Windows/macOS/Linux 平台兼容性进行了进一步优化。
下载
给拥有者添加执行权限:
从所属组删除写权限:
从拥有者删除执行权限,给所属组添加写权限,给其他人添加写和执行权限:
给所有用户添加读、写、执行权限:
使用8进制数值修改权限:
chown命令
用于修改文件的拥有者:
格式:
示例:
同时修改文件的拥有者和所属组:
chgrp命令
用于修改文件或目录的所属组:
格式:
常用选项:
- 递归修改文件或目录的所属组
示例:
umask命令
用于查看或修改文件掩码:
新建文件的默认权限为
新建目录的默认权限为
实际创建的文件和目录权限会受到
的影响:
实际权限 = 起始权限 & (~umask)
格式:
超级用户默认掩码值为
,普通用户默认为
。
普通用户创建的文件默认权限为
,目录为
。
通过
查看掩码:
掩码会影响初始权限,凡是在权限掩码中出现的权限,不会出现在最终文件权限中:
file命令
用于辨识文件类型:
语法:
常用选项:
:详细显示指令执行过程
:尝试解读压缩文件的内容
使用sudo分配权限
修改
文件分配权限:
格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令
使用
调用授权的命令:
目录权限
可执行权限:没有可执行权限无法进入目录。
可读权限:没有可读权限无法查看目录中的文件内容。
可写权限:没有可写权限无法在目录中创建或删除文件。
注意:只要用户具有目录的写权限,就可以删除目录中的文件,无论是否有该文件的写权限。因此引入了粘滞位的概念。
粘滞位
当一个目录被设置为“粘滞位”(用
),则该目录下的文件只能由:
超级管理员删除
该目录的所有者删除
该文件的所有者删除
su [用户名]rootusersu useruserrootsusu rootrootrootgwj[root@iZf8zhv7mi2thjdxsptkb8Z ~]# su gwj
[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$ whoami
gwj
[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$gwjrootsuroot[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$ su
Password:
[root@iZf8zhv7mi2thjdxsptkb8Z ~]# whoami
root
[root@iZf8zhv7mi2thjdxsptkb8Z ~]#susu -rootsudo + 命令[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$ whoami
gwj
[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$ sudo whoami
[sudo] password for gwj:
gwj is not in the sudoers file. This incident will be reported.
[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$sudols -lrwx-d-lbpcschmodchmod [参数] 权限 文件名Rroottext.txt-rw-rw-r-- 1 gwj gwj 0 Dec 10 15:02 text.txtchmod u+x text.txtchmod g-w text.txtchmod u-x,g+w,o+w,o+x text.txtchmod a+rwx text.txtchmod 777 text.txtchown [参数] 用户名 文件名chown nanqiao text.txtchown gwj:nanqiao text.txtchgrp [参数] 用户组名 文件名-Rchgrp gwj text.txt06660777umaskumask 权限值00220002664775umask666 -> 110 110 110
002 -> 000 000 010
~umask: 111 111 101
666 -> 110 110 110
111 111 101
按位与&
110 110 100 -> 664file [选项] 文件或目录...-c-z/etc/sudoerschmod 740 /etc/sudoers
vi /etc/sudoerssudosudo –u 用户名 命令chmod +t