【Linux】Linux 的 权限



在这里插入图片描述



一、 Linux 权限的概念


Linux下有两种用户:超级用户(root)、普通用户。
  • 超级用户:可以在 linux 系统下做任何事情,不受限制
  • 普通用户:在 linux 下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”


通俗解释:

超级用户:一般账号名为 root,该用户也叫超级管理员,相当于一款游戏的开放管理者,什么事都能做(比如删除某个游戏账号,将某个游戏账号的某些数值更改)

普通用户:相当于游戏服中的每个普通玩家账号,每个用户都管理着自己的文件目录,互不干涉




【命令】 su :切换用户

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


例如:当前我们系统中有两个用户(超级用户 root、普通用户 mine)

1、要从超级用户 root 切换到 普通用户 mine,则使用 su mine。
在这里插入图片描述

2、要从普通用户 mine 切换到 超级用户 root,则使用 su root(root可以省略),此时系统会提示输入 root 用户的账户密码。
在这里插入图片描述

(因为超级用户是”无敌的“,切换任何普通用户都不需要密码,而其他用户切换操作则需要)


二、Linux 权限管理


本节将从普通用户 mine 的目录底下文件讲解:我们通过命令”ls -l“ 将目录的文件列表及其文件属性打印出来,如下

mine 用户一共有一个目录 text_dir、一个文件 text.txt
在这里插入图片描述


下面文件目录前面的各部分文件属性都是什么意思?
在这里插入图片描述


根据这张图:初步认识各个部分是什么意思
在这里插入图片描述


在这里插入图片描述

下面我们将对一部分概念进行一一解释:文件大小和文件最新修改时间不用解释

(注:连接数这里暂不讨论)


关于 文件类型

文件类型为 d:代表为 目录文件,如 text_dir
文件类型为 -: 代表为 普通文件,如 text.txt
在这里插入图片描述



关于 文件访问者的分类


对于 文件或文件目录 来说:有三种访问者身份
  • 拥有者:只有一个,即文件的创建者,拥有者
  • 所属组:只有一个组
  • other:代表其他访问用户(为什么上面没有记录:其他人可以有很多个,因此没必要记录在上面)


何为 所属组:即为文件权限白名单

举个例子:

我们一个开发小组组长创建一个文件目录,创建者为文件的拥有者:组长,具有最高权限

整个小组共同开发,本组中开发的数据都放到该文件目录中

此时就涉及到访问权限的问题:要想实现共同开发,就必须将权限赋给小组的成员,此时小组成员用户相当于 “other 其他人”,其他人想要访问该文件目录,就必须有相应的权限允许,

若想要让 other 访问一个文件,文件拥有者就需要将权限开放,但是这样就会将自己的文件完全暴露于世;

这种情况可以将该 other 用户添加进 所属组:所属组就类似白名单,你存在文件所属组中,就可以拥有操作某文件的权限,而无需将文件完全暴露在外


拥有者、所属组、other 都是一种身份,而 root、mine、zhangsan 都是一个个具体用户,具体用户有了前面某种身份,才能拥有对应的权限,有了权限才能做想要的事




关于 文件的访问权限

在这里插入图片描述
这里的 9 个字符代表着 文件的访问者 对文件的操作权限,每 3 个字符为一组,分别代表 文件拥有者的权限、所属组的权限、other 其他人的 权限

例如上图第一行:
在这里插入图片描述



符号 " r、w、x、- " 什么意思?


  • 读 r :Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写 w :Write 对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行 x :execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • 横杠 “-” : 表示不具有该项权限

每组字符表示方法:

在这里插入图片描述



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

文件的的访问权限是可以修改的,通过下面几条命令


认识 拥有者、所属组、other 的缩写代号:

拥有者:user,缩写 u
所属组:group,缩写 g
其他人:other,缩写 o



【命令】 chmod:修改用户对文件的访问权限


全称:Change mode 更改权限

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

R -> 递归修改目录文件的权限

说明:只有文件的 拥有者 和 root 才可以改变文件的权限,其他任何用户都不能修改


使用 chmod 命令修改权限的符号:

加号 +:向权限范围 增加 权限代号所表示的权限
减号 -:向权限范围 取消 权限代号所表示的权限
等号 =:向权限范围 赋予 权限代号所表示的权限

用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户


使用演示:

对 user 修改权限:u-x,去掉 执行权限 x
在这里插入图片描述


对 group 修改权限:g-rw,去掉 读写权限 rw
在这里插入图片描述


对 other 修改权限:o+w,增加 写权限 w
在这里插入图片描述


多条命令可以合并写,使用逗号隔开
在这里插入图片描述


使用 a 同时代表三种身份:a-r 表示三种身份用户都减去 读权限 r
在这里插入图片描述


简单来说:chmod 命令可以通过 加减 来对指定身份 增加或删除 某些权限



8 进制表示文件权限值

因为是否拥有权限是两种状态,可以使用 0 和 1 来表达,如一个身份拥有 rw- 的权限,则二进制表示为 110 即为 6,因此设置权限也可以直接使用八进制的形式

在这里插入图片描述


8 进制形式可以同时设置所有身份的权限:

输入命令 “chmod 777 text_dir”,将所有用户的权限都设置成 rwx
在这里插入图片描述




【命令】chown :修改拥有者(移交拥有权)

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
实例

当你是超级用户 root 时:

chown root ./text.txt  // 将文件 text.txt 的拥有者修改成 root

在这里插入图片描述


当你是普通用户 mine 时:

chown root text.txt  // 将文件 text.txt 的拥有者修改成 root

在这里插入图片描述


这里报错了:因为 普通用户无法直接移交自己文件的拥有权
只有超级用户 root 才有权力调整文件的 拥有权
普通用户只能通过使用 sudo 命令, “借助超级用户的力量”来达成上述目的



【命令】chgrp:修改所属组

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
实例
该命令的用法和相关限制 与上面的 命令 chown 差不多

1、使用格式相同:

chgrp root text.txt  // 将文件 text.txt 的所属组修改成 root

在这里插入图片描述

2、普通用户不能直接修改,超级用户可以直接修改

chgrp root text.txt  // 将文件 text.txt 的所属组修改成 root

在这里插入图片描述
普通用户使用 chgrp 命令修改时直接报错:该操作未被允许




【命令】umask:查看权限掩码

Linux 中新建一个文件或目录的默认权限是:

  • 对于目录,默认权限为 777:表示 rwx rwx rwx
  • 对于文件,默认权限为 666:表示 rwx- rw- rw-(文件默认无执行权限)

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


1、查看默认权限掩码:

umask

在这里插入图片描述


超级用户默认掩码值为 0022,普通用户默认为 0002。


2、修改默认权限掩码:

umask 数值

在这里插入图片描述


3、最终权限值计算与演示


假设默认权限是 mask,则实际创建的出来的文件权限是: 最终权限 = mask - umask

普通用户 mine 创建新文件:最终权限为 664(即 rw-rw-r-- = 666-2 = 665 )
在这里插入图片描述


超级用户 root 创建新文件:最终权限 655(即 rw-r–r-- = 666-22 = 655 )
在这里插入图片描述


关于 目录的权限


对于一个普通文件来说:读文件即读取该文件的内容、写文件即添加修改文件内容、执行文件即运行该文件
对于一个目录来说呢?


(1)可执行权限: 如果目录没有可执行权限, 则无法 cd 到目录中.(决定是否可以切换到该目录)
(2)可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容(决定是否可以查看文件列表)
(3)可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件(决定是否可以在该目录下创建/删除/重命名 文件与目录)


注意:文件和目录的权限要分清楚!

若没有该目录的 rw 读写权限,表示我们不能在目录中 ls 查看目录的文件列表 与 不能在该目录下创建/删除/重命名 文件与目录,但是可以进入该目录里面的子目录和子文件中进行符合权限的操作(目录权限限制的是 目录 这一层面,不限制目录的子文件目录)

如现在有一个 mydir 目录,该目录中有一个文件 test.txt

. / mydir / test.txt
我们无法对 mydir 进行读写操作,但是可以对目录中的 text.txt 文件进行操作



关于 创建共享文件及其产生的问题


1、根目录不在任何一个用户的家目录下,因此根目录存放的文件与目录所有用户是共享的

当两个用户想要共享一个文件,但是不想直接进入对方的账户来查看,也不想将文件拷贝进自己账户,此时可以将文件放到根目录下,直接实现共享


2、为什么根目录上的文件与目录可以被任意用户共享使用?

我们在根目录下创建了一个文件目录 shared_fail :你可以发现前面 other 的权限是 rwx

在这里插入图片描述


3、既然根目录下的文件和目录可以全用户共享使用,岂不是某个用户可以直接删除共享文件或目录?

确实是,上面讲解过,例如共享目录 shared_fail 对于 other 的权限是 rwx,允许 读 写 执行,也就允许删除目录底下的文件或目录

一个用户直接删除掉公共数据(共享文件目录),显然不合理
那如何预防这种情况?把 other 权限中的 w 写权限去掉吗?显然不现实(一棒子打死了)

此时就需要使用粘滞位



粘滞位

当我们要实现一个共享目录 shared_fail ,允许任意用户在该目录下创建文件目录,但是不允许用户删除其他用户创建的文件目录,只允许对自己的文件目录进行操作,这就是粘滞位的概念与使用

使用命令:“chmod -t 目录” 将一个目录设置成粘滞位
在这里插入图片描述


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

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/433139.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初学51单片机之I2C总线与E2PROM

首先先推荐B站的I2C相关的视频I2C入门第一节-I2C的基本工作原理_哔哩哔哩_bilibili 看完视频估计就大概知道怎么操作I2C了,他的LCD1602讲的也很不错,把数据建立tsp和数据保持thd,比喻成拍照时候的摆pose和按快门两个过程,感觉还是…

Mysql之索引优化

指定索引 当一个字段上既有单列索引,又有复合索引时,我们可以通过以下的SQL提示来要求该SQL语句执行时采用哪个索引: use index(索引名称):建议使用该索引,只是建议,底层mysql会根据实际效率来考虑是否使用…

使用豆包MarsCode 实现高可用扫描工具

以下是「 豆包MarsCode 体验官」优秀文章,作者郝同学测开笔记。 前言 最近接触K8s,了解到K8s提供了非常方便的实现高可用的能力,再加上掘金推出「豆包MarsCode初体验」征文活动,所以打算使用豆包 MarsCode IDE来实现…

LeetCode(Python)-贪心算法

文章目录 买卖股票的最佳时机问题穷举解法贪心解法 物流站的选址(一)穷举算法贪心算法 物流站的选址(二)回合制游戏快速包装 买卖股票的最佳时机问题 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你…

Qemu开发ARM篇-5、buildroot制作根文件系统并挂载启动

文章目录 1、 buildroot源码获取2、buildroot配置3、buildroot编译4、挂载根文件系统 在上一篇 Qemu开发ARM篇-4、kernel交叉编译运行演示中,我们编译了kernel,并在qemu上进行了运行,但到最后,在挂载根文件系统时候,挂…

python之装饰器、迭代器、生成器

装饰器 什么是装饰器? 用来装饰其他函数,即为其他函数添加特定功能的函数。 装饰器的两个基本原则: 装饰器不能修改被装饰函数的源码 装饰器不能修改被装饰函数的调用方式 什么是可迭代对象? 在python的任意对象中&#xff…

C# DotNetty客户端

1. 引入DotNetty包 我用的开发工具是VS2022,不同工具引入可能会有差异 工具——>NuGet包管理器——>管理解决方案的NuGet程序包 搜索DotNetty 2.新建EchoClientHandler.cs类 用于接收服务器返回数据 public class EchoClientHandler : SimpleChannelIn…

【AD那些事 10 】焊盘如何修改为自己想要的形状!!!!! 焊盘设计规则如何更改??????

左侧为修改前焊盘原图 右侧为修改后焊盘图 ——————————————————————————————————————————— 目录 修改焊盘内侧的大小 修改焊盘外侧的大小 更改焊盘设计规则 ——————————————————————————…

Pencils Protocol 即将登录各大 CEX,依旧看好 $DAPP

近期,Scroll生态头部DeFi协议Pencils Protocol迎来了系列重磅市场进展。自9月18日开始,$DAPP通证分别在Tonkensoft、Bounce以及Coresky等平台陆续开启了IDO,并且在短期内售罄。同时在通证售卖完成后,DAPP 通证又在9月27日陆续登录…

RUST语言的初印象-从一个模拟登陆谈起-slint+reqwest+aes

本文就一个做了三四天的小程序讲第一次学用RUST的感受,内附代码。 了角语言 从一些渠道听说了R,这个字母挺魔性,那个文章说C和R的团体已经上升到了宗教崇拜的高度,然后,我觉得必 有过人之处,大约10年没碰…

通用运维基础

一 网络基础 知识点:网络交换1.1 VLAN1.2VxLAN2.网络路由3.网络常用命令目标:1. 了解网络的基本概念 2. 掌握常用的网络排错命令 1、网络交换 1.1 网络虚拟化 什么是网络虚拟化 网络虚拟化是指虚拟网络节点之间的连接并不使用物理线缆连接,而是依靠特定的虚拟化链路相连…

TCP的第三次握手没有回复,会出现哪些问题现象

从三次握手的一开始来讲,刚开始客户端和服务器都处于close状态 这里不能是2次握手的原因就在于,服务器端即女孩子,无法确认客户端即男孩子,是否已经收到了,我也愿意建立连接即我也爱你,这一条最终确认的信息…

软件对比 | 历史气象数据哪里找?

中国气象网和羲和能源气象大数据平台两个平台当然没有“绝对”哪个好的说法,各自特点都在下图进行总结,到底用哪个还是根据自己需求自己抉择。 希望可以帮助到大家~

DK5V100R15ST1直插TO220F,12V 4A两个引脚同步整流芯片

高性能两个引脚同步整流芯片 DK5V100R15ST1产品 概述DK5V100R15ST1是一款简单高效率的同步整流芯片,只有A,K两个引脚,分别对应肖特基二极管PN管脚。芯片内部集成了100V功率NMOS管,可以大幅降低二极管导通损耗,提高整机…

.NET 6 中,使用 ActionFilterAttribute 实现 AOP(面向切面编程)

AOP概述:AOP(面向切面编程)是一种编程规范的风格,通过横切的思想,将系统功能和业务功能分离开,以提高代码的可维护性和清晰度。 系统功能模块: 1、缓存模块: 作用:提高…

拥塞控制算法的 rtt 公平性

我强调过,拥塞控制的核心在公平可用性,公平性由 buffer 动力学保证,而 buffer 动力学有两种表现形式: buffer 占比决定带宽占比,以 aimd 为例;带宽越小,buffer 挤兑加速比越大,以 b…

如何选择高品质SD卡

如何选择高品质SD卡 SD卡(Secure Digital Memory Card)是一种广泛使用的存储器件,因其快速的数据传输速度、可热插拔的特性以及较大的存储容量,广泛应用于各种场景,例如在便携式设备如智能手机、平板电脑、运动相机等…

作者分享|eDNA研究梯级水坝对浮游植物和浮游动物群落变化的影响

研究梯级水坝的影响对于了解和减轻其对环境的负面影响至关重要,浮游植物和浮游动物群落都对梯级水坝引起的变化尤为敏感。凌恩客户重庆师范大学生命科学学院水生态健康与环境安全实验室沈彦君课题组,通过eDNA宏条码技术对梯级水坝河道的浮游植物和浮游动…

uniapp实现在表单中展示多个选项,并且用户可以选择其中的一个或多个选项

前言 uni-data-checkbox是uni-app的一个组件,用于在表单中展示多个选项,并且用户可以选择其中的一个或多个选项。该组件可以通过设置不同的参数来控制选项的样式、布局和行为。 提示:以下是本篇文章正文内容,下面案例可供参考 uni-data-checkbox组件具有以下特点:: 1、跨…

威雅学校:2024线上3D艺术展精彩纷呈,让我们为孩子们的想象力喝彩!

Wycombe Abbey International Imaginarium 2024 IMAGINARIUM,是一个源于拉丁语的词汇,意为“想象的地方”或“幻想的世界”。在艺术和文化的领域中,它代表着展示创意、想象力和幻想的空间。 2024年度的威雅大家庭线上3D艺术展,正以…