【Linux】权限

个人主页~


Linux权限

一、Linux权限的概念

Linux有两种用户,一种是超级用户,也就是我们所说的root用户,它可以在Linux系统下做任何事情不受限制,另一种就是普通用户,它限制了某些可能导致Linux系统风险的行为,牺牲了自由换取了安全,所以我们在学习和工作中一般是用普通用户,超级用户的命令提示符为#,普通用户的为$

如果我们想要切换用户,用以下命令

su [用户名]

su不加用户名即切换到超级用户,输入密码不回显

ctrl+d退回

二、Linux权限管理

1、文件访问者的分类

文件访问者分为文件或文件目录的所有者u(user),文件或文件目录的所有者所在小组的用户g(group),以及其他用户o(others)

其中u很好理解,u就是创建这个文件或者文件目录的人,o也比较好理解,就是除了u和g的其他所有的用户都是o,对于g,我们上学时会分小组,老师布置小组作业并且嘱咐不能抄袭,但既然是小组作业,小组的同学之间对于这份作业是要互相加交流借鉴的,但是这个组以外的其他人是不能看我们的作业的,这里的组就是g,当然这里的其他人就是o

2、文件类型和访问权限

以上是我们在使用ll指令时打印出的我们文件的详细信息,我们一共将它分为10块

第一块也就是第1位为文件类型

第二块也就是2~10位为文件权限

第三块为硬连接数,它表示指向该文件或目录的硬链接的数量,硬链接是一种文件系统机制,多个硬链接可以指向同一个文件,它们共享相同的索引节点和磁盘空间,例如,目录test的硬链接数为 2,意味着有两个不同的文件名指向磁盘上的同一个文件内容,因为test是个空目录,所以可能导致还有一个空目录与test指向了一块空间

第四块为该文件所属用户,也就是u

第五块为该文件所属用户组,也就是g

第六块为该文件大小

第七、八、九块为该文件最新修改日期,对应月、日、时分

第十块为该文件的文件名

(1)文件类型

符号 文件类型
d 文件夹
- 普通文件
l 软连接(类似于Windows快捷方式)
b 块设备文件(硬盘、光驱等)
p 管道文件
c 字符设备文件(屏幕、键盘灯)
s 套接口文件

我们初学者一般懂文件夹d和普通文件-就可以了

这里我们Linux认识文件类型只看前面的第一个符号,不看我们文件的后缀,如果我们不带后缀Linux也是可以识别出该文件是一个普通文件还是一个目录文件,但是,Linux可以识别,不代表在Linux上所安装的软件可以识别,比如说gcc,它就要通过后缀来判定文件是否是c文件,没有后缀无法编译

所以前面的是给Linux看的,后缀的是给Linux上面的软件看的

(2)文件权限

文件权限共9位,按顺序3位一组共3组,第一组为u对于该文件的权限,第二组为g对于该文件的权限,第三组为o对于该文件的权限

每组的第一位都是读权限r,无读权限为-,每组的第二位都是写权限w,无写权限为-,每组的第三位为执行权限x,无执行权限为-

所以只读就可以用r- -来表示,无权限用- - -来表示,可读可写可执行用rwx来表示,每个位置的情况只有有权限和无权限两种情况,即对于第一位读位置来说,只有可读和不可读两种情况,所以我们可以相应的转化为二进制位来表示,所以只读也可以用100来表示,无权限可以用000来表示,可读可写也可以用111来表示

3、文件权限的设置方法

(1)chmod

chmod指令的作用是设置文件的访问权限

chmod [选项] 权限 文件名

只有root用户才能改变文件的权限

选项-R ,递归修改目录文件的权限

chmod命令修改权限有两种方法

①用户表示符+、-、=权限字符
用户表示符 意义
u 拥有者用户
g 拥有者所在小组用户
o 其他用户
a 所有用户
权限字符 意义
+ 向权限范围增加权限代号所表示的权限
- 向权限范围取消权限代号所表示的权限
= 向权限范围赋予权限代号所表示的权限

+的运用

-的运用

=的运用(这里中间忘记输文件名了,不好意思,忽略一下)

②三位八进制数字

前面在文件权限中提到,rwx是可以用三位二进制数来表示的,也就是一位八进制数,共有三组,我们就可以用三位八进制数来表示ugo三位的权限,比如说我将要将test目录调为u全权限,o全权限,g无任何权限,那么对应的二进制数就是u111,g000,o111,换算成八进制数就是u7,g0,o7

(2)chown

chown的作用是修改文件的拥有者

chown [选项] 用户名 文件名

常用选项-R,递归修改该目录下的所有文件或目录的拥有者

上图是因为权限不够,只有root权限可以修改拥有者,我们登陆root账号修改一下


内部文件的拥有者也全部修改了

(3)chgrp

修改文件或目录的所属组

chgrp [参数] 用户组名 文件名

(4)umask

umask指令的功能是查看或修改文件掩码

umask 权限值(这是修改)

umask (这是查看)

新建文件的默认权限为0666,新建目录默认权限为0777

这里文件new.c的权限为0664

目录new的权限为0775

这里实际权限与默认权限不一样的原因就是文件掩码umask

事实上,最终权限 = 起始权限 & (~umask) ,最终权限等于起始权限按位或上umask的取反,

对于文件new.c来说,就是110 110 110 & (~000 000 010)也就是 110 110 110 & 111 111 101,最终等于110 110 100 也就是 0664

对于目录new来说,就是111 111 111 & (~000 000 010)也就是 111 111 111 & 111 111 101,最终等于111 111 101 也就是0775

当umask改为0777,那么创建出的任何文件将没有任何权限

在这里的文件对应的rwx我们都好理解,对于目录文件

r:是否允许我们查看指定目录下的文件内容

w:是否允许我们在当前目录下进行创建更改

x:是否允许用户进入对应的目录

4、粘滞位

粘滞位是给目录设置的,一般是共享目录一个root账户下的普通用户可以在目录中进行各自文件的增删改查,但是只允许文件拥有者或者root可以删这个文件,是一种特殊x权限,用t表示

在云服务器上它自带了一个共享文件夹tmp,它属于root用户所有,除root用户以外的所有用户都无法删掉里面的文件,但是可以对里面的文件进行增删改查,当然里面的文件是可以由文件的所有者删除的,简单来说,当o的权限为rwt时,该目录下的文件只能由三种人删除,一是超级管理员root,二是该目录的所有者,三是该文件的所有者,在互联网公司中,我们程序员一般都会一个或一组人分配一个普通用户,然后技术主管或经理是该共享目录的所有者,老板掌握root用户,以防止有人误删或者故意将文件删除从而导致不可避免的损失

三、sudo提升权限

sudo指令可以短暂的将我们的权限提升至超级用户权限

当我们使用sudo的时候发现,无法提高权限,这是因为我们的账户没有在信任白名单里,我添加了slm账户进入信任白名单,这个账户就可以在需要超级用户权限的时候在指令前面加上sudo指令,短暂提高权限,那么如何将账户添加到信任白名单呢?

我们先把用户切换为root用户,然后在当前我们可以使用nano打开该文件,然后在红框区域我们可以看到有两个用户,一个是root一个是slm,所以我们的slm可以进行sudo提权限,temp就不行,如果要添加新用户进入白名单,第一列是用户名,后面直接对齐抄上就行

这样我们在下载啊或者一些其他需要root权限的时候就可以sudo来解决了,不需要切换用户了


今日分享就到这里了~

相关推荐
安科瑞刘鸿鹏172 分钟前
企业配电系统中开关柜“可视化运行管理”的实现路径
大数据·运维·网络·物联网
岁岁种桃花儿6 分钟前
Nginx高并发网站技术的实战篇
运维·nginx
AndyHeee6 分钟前
【瑞芯微rk3576刷ubuntu根文件系统容量不足问题解决】
linux·数据库·ubuntu
liulilittle7 分钟前
Ubuntu挂在新云盘(Disk磁盘)
运维·服务器·ubuntu
李昊哲小课8 分钟前
Ubuntu 24.04 在线安装 Redis 8.x 完整教程
linux·redis·ubuntu
sao.hk8 分钟前
ubuntu2404,vbox,全屏显示
linux·运维·服务器
危笑ioi8 分钟前
linux配置nfs在ubuntu22.04
linux·运维·服务器
Maxwell_li110 分钟前
机器学习知识点梳理(回归模型、分类模型、聚类模型、评估方法)
机器学习·分类·回归·学习方法·聚类·改行学it
李宥小哥15 分钟前
SQLite03-数据库管理
数据库
社会零时工18 分钟前
【ROS2】海康相机ROS2设备服务节点开发
linux·c++·相机·ros2