上期回顾【Linux】基本指令3

下一篇 【Linux】冯诺依曼—操作系统

在这里插入图片描述

权限概念

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

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

命令: su [用户名]
功能: 切换用户
要从root⽤⼾切换到普通⽤⼾user,则使⽤ su user
要从普通⽤⼾user切换到root⽤⼾则使⽤ su root(root可以省略),此时系统会提⽰输⼊root⽤⼾的⼝令

普通用户
在这里插入图片描述

用su切换用户:su root

超级用户(root)
在这里插入图片描述

权限的相关操作

使用root创建普通用户

命令: adduser [选项] 用户名

常用选项:

  • -c comment 指定一段注释性描述。
  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  • -g 用户组 指定用户所属的用户组。
  • -G 用户组,用户组 指定用户所属的附加组。
  • -s Shell文件 指定用户的登录Shell。
  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

用户名: 新账号的登录名

示例

[root@VM-0-9-centos test]# cd ~
[root@VM-0-9-centos ~]# adduser qianyv			//用root创建一个普通用户(qianyv)
[root@VM-0-9-centos ~]# passwd qianyv			//给普通用户设置密码
Changing password for user qianyv.					
New password: 														//输入密码时是不回显的,不要乱输
Retype new password: 
passwd: all authentication tokens updated successfully.	//密码设置成功

补充: 其他指令

指令 功能 语法
adduser 创建用户 adduser [用户名]
passwd 设置用户密码 passwd [用户名]
groupadd 创建用户组 groupadd [用户组名]
usermod 修改用户账号设定 由具体功能决定
userdel 喊出用户 userdel [用户名]

使用su 命令切换用户

//超级用户切换成普通用户:不需要输入密码
[root@VM-0-9-centos ~]# su dyy				
[dyy@VM-0-9-centos root]$ 

//普通用户切换成超级用户:需要输入密码
[dyy@VM-0-9-centos root]$ su - root
Password: 											//密码不回显
Last login: Sun Apr 19 15:38:38 CST 2026 on pts/1
[root@VM-0-9-centos ~]# 

权限的管理

文件访问者的分类(人)

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

文件类型和访问权限(事物属性)

  • ⽂件类型:
  • d:⽂件夹
  • -:普通⽂件
  • l:软链接(类似Windows的快捷⽅式)
  • b:块设备⽂件(例如硬盘、光驱等)
  • p:管道⽂件
  • c:字符设备⽂件(例如屏幕等串⼝设备)
  • s:套接⼝⽂件
  • 基本权限:
  • 读(r/4):Read对⽂件⽽⾔,具有读取⽂件内容的权限;对⽬录来说,具有浏览该⽬录信息的权限
  • 可写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 可执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “—”表示不具有该项权限

在这里插入图片描述
在这里插入图片描述

  • 2-10位,每三个为一组,分别代表拥有者、所属组、其他人的权限

文件权限的表示方法

文字表示法

Linux 解析
r - - 仅可读
- w - 仅可写
- - x 仅可执行
r w - 可读可写
- w x 可写可执行
r - x 可读可执行
r w x 可读可写可执行
- - - 无任何权限

8进制数值表示法

权限符号 r - - - w - - - x r w - r - x - w x r w x - - -
二进制 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0
八进制 4 2 1 6 5 3 7 0
说明 仅可读 仅可写 仅可执行 可读可写 可写可执行 可读可执行 可读可写可执行 无任何权限

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

1. chmod指令

chmod: 设置文件的访问权限

语法: chmod [参数] 权限 文件名
常用选项:

  • R->: 递归修改文件目录的权限
  • 说明: 只有文件的拥有者和root才能够改变文件的权限

chomd命令权限值的格式:
1.用户表示符 + / - / = 权限字符(r,w,x)

用户表示符 含义 操作符 含义
u 拥有者 + 向权限范围 “增加” 权限代号所表⽰的权限
g 拥有者所属组 - 向权限范围 “取消” 权限代号所表⽰的权限
o 其他用户 = 向权限范围 “赋予” 权限代号所表⽰的权限
a 所有用户

示例

1.将文件 a 的拥有者的 rwx 权限 “全部取消”

//取消前
在这里插入图片描述

//取消后
在这里插入图片描述

2.给文件 a 的拥有者 “加上” wx 权限

//加上前
在这里插入图片描述

//加上后
在这里插入图片描述

3.给test.txt文件的所有用户 “加上” rwx 权限

//加上前
在这里插入图片描述

//加上后
在这里插入图片描述

2.三位八进制数字

权限符号 r - - - w - - - x r w - r - x - w x r w x - - -
二进制 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0
八进制 4 2 1 6 5 3 7 0
说明 仅可读 仅可写 仅可执行 可读可写 可写可执行 可读可执行 可读可写可执行 无任何权限

注意:三个二进制分别表示三个权限的有无(1表示有,0表示无)

示例

1.将a.txt文件所有人的所有权限都 “取消” :000
在这里插入图片描述

2.给a.txt文件拥有者和其所属的组赋予 “可写可执行” 的权限,给其他用户赋予"读"的权限: 556
在这里插入图片描述

2. chown指令

chown: 修改文件的拥有者
语法: chown [参数】 用户名 文件名

示例

将 temp.txt 的拥有者从 root 改成 qianyv(该用户名要已创建)

在这里插入图片描述

3. chgrp指令

chgrp: 修改文件或目录的所属组

语法: chgrp [参数] 用户组名 文件名
常用选项:

  • -R : 递归修改文件或目录的所属组

示例

将 temp.txt 的所属组从 root 改成 qinayv
在这里插入图片描述

4. umask指令

umask: 查看或修改文件掩码 - - - 用来控制新建文件、新建目录的默认权限

语法: umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产⽣建⽴⽂件时预设权限。超级⽤⼾默认掩码值为0022,普通⽤⼾默认为0002。

核心原理:

  • 目录默认最大权限:0777(rwxrwxrwx)
  • 文件默认最大权限:0666(rw-rw-rw-),默认无执行权限
  • 实际权限 = 最大权限 - umask值

超级⽤⼾默认掩码值为0022,普通⽤⼾默认为0002

怎么理解呢
1.我们在创建一个目录时,按道理来说我们的权限值是 0777,但是他会受到umask影响,导致我们的实际权限值不等于0777

(1)umask = 0002时,实际权限值 = 最大权限 - umask = 0777 - 0002 = 0775
(2)umask = 0022时,实际权限值 = 最大权限 - umask = 0777 - 0022 = 0755

2.在创建文件时也一样

示例

1.常规情况

超级用户(root): umask =0022,目录最大权限值是 0777,文件是 0666

在这里插入图片描述

普通用户(dyy): umask = 0002,目录最大权限值是 0777,文件是 0666

在这里插入图片描述

2.特殊情况:我们手动改 umask 的值

将超级用户(root)的 umask改为 0111

在这里插入图片描述

将普通用户 (dyy) 的 umask 改为 0123

在这里插入图片描述

5. file指令

file : 辨识文件类型

语法: file [选项] 文件或目录…
常用选项:

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

6. sudo 指令

sudo: 以系统管理者的身份执行指令,等价于 root

语法: sudo [选项] 命令
常用选项: -u 用户名 : 以指定用户执行

使用权限: 在/etc/sudoers 中出现的使用者

示例

当使用sudo的用户不是root白名单用户时, 是无权执行sudo的, 下面我们学习一下如何将用户账户添加到root白名单中:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
改好之后我们按[ Esc ]键退出插入模式,再按[ Shift ] + [ ; ]进入底行模式,在底行模式输入" wq! ":
在这里插入图片描述

目的权限

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

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐