跳转到主内容
极星编程网:以代码为星,赴技术山海!

Linux权限理解

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

相关文章