Linux中的权限

news2024/11/23 20:41:07

目录

一、shell命令以及运行原理

二、Linux权限的概念 

三、权限的八进制表示

四、修改文件的拥有者和所属组

五、权限常见的问题

1、目录的权限

2、umask

3、粘滞位


一、shell命令以及运行原理

首先,我们先来看看这个问题:我们使用命令是直接操作Linux吗?答案就是当然不是直接访问操作系统。这是为什么呢?

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。

为什么我们人一般不能直接使用kernel?(直接访问linux)

操作系统过于复杂,操作成本高,一般的人不擅长直接使用,毫不夸张地说,这个世界上很少有人能够直接使用。

所有就有了各种“外壳”程序。举个例子:司机不一定懂得汽车的构造和运行原理,所有汽车的设计者就将这些东西用一个外壳包装起来,用普通人容易掌握的方向盘和挡位来和汽车的发动机等设备进行“交互”,这样普通人也可以驾驶结构和运行原理复杂的汽车了。

而Linux的外壳程序就相当于汽车中的方向盘和挡位的作用。人们可以通过外壳程序使用一些简单易懂的指令来间接操作Linux。人们将指令输给外壳,外壳将指令翻译传输给操作系统,然后将操作系统的反馈翻译传输给人。这样操作成本就大大地降低了。

再比如windows系统,我们也不是直接使用操作系统,而是微软将操作系统用图形化的界面进行了包装,使得普通人能够间接访问操作系统。而这个图形化界面程序也是一种shell外壳。

我们可以看一看我们使用的外壳程序是什么:

bash和windows的图形化界面都属于sell外壳。 


二、Linux权限的概念 

1、对人操作

Linux下有两种用户:超级用户(root)、普通用户。(Linux下可以存在多个用户)

root用户:只有一个,具有Linux下的最高权限,一般不受权限约束。

普通用户:可以有多个,要受权限约束。

当我们在用户之间进行身份切换时,就相当于我们在切换当前的权限。那么用户的身份怎么切换呢?使用 su - 命令就可以由普通用户切换为root用户(要输入root用户的密码)。在root下,su 用户名  命令可以直接切换用户身份,不需要输入密码。普通用户切换成另一个普通用户要输入密码。

2、对角色和文件操作

简单来说,就是什么样的人(不同的访问者)对同一个文件是否具有读、写、执行的权限。

文件类型和访问权限:

在ll命令下,红色方框里面的内容就是和权限相关的了。 

第一列中的 - 和 d:表明该文件的文件类型。d目录,- 普通文件,p 管道文件,b 块设备,c 字符设备。Linux下,不以文件后缀来区分文件的类型(但是用户可以给文件添加后缀来自己区分)。

后面9个字符和下面的文件访问者就有关系了:

u—User:拥有者,即文件属于谁。

g—Group:文件和文件目录的所有者所在的组的用户,即文件属于哪个组。

o—Others:其它用户。不属于上面两个的任何一种,就是others。

每三个字符,就分别代表u,g,o对该文件的读、写、执行的权限。比如:第一个文件,前三个字符 rw- 是u对该文件的权限,接着三个字符 r--  是g对第一个文件的权限,最后三个字符 r-- 是o对该文件的权限(是r,w,x表示有权限,-表示无权限)。

如:u对该文件有读、写的权限,没有执行的权限。g对该文件只有读的权限,没有写和执行的权限。(第一个root是 u,第二个root是 g)。

注:r,w,x 三个权限的位置固定,顺序固定。

3、权限的操作

还是上面的文件,我们执行下面的操作: 

通过上面的操作,我们可以自己修改文件的权限。


三、权限的八进制表示

上面所讲的修改权限的方法是通过 ugo+-的方式进行文件权限修改。而在Linux中还有一种文件权限的修改方法。

我们知道,一个权限,一共有9列字母,3个为一组,每一组的相对位置是确定的。r一定在第一个,w一定在第二个,x一定在第三个。而每一个位置要么有,要么没有。那它就是一个两态的。那么我们就可以用1表示有,0则表示没有。比如:rwx就可以表示成111(八进制为7),rw-(八进制为6)就可以表示成110。

因此,我们可以像下面这样修改权限:

 上面这种方法也叫做(八进制修改权限的方法)。


四、修改文件的拥有者和所属组

1、修改文件的拥有者

chown  功能:修改文件的拥有者    语法: chown  用户名 文件名

2、修改文件的所属组

chgrp  功能:修改文件或目录的所属组     语法: chgrp  用户组名 文件名

3、sudo

在一个命令前加上sudo,在执行该命令时,要以root权限级别来执行。(如果用户想要使用它来提升权限,那么它必须要被root用户添加到信任列表里)。

注:更改文件的拥有者和所属组需要提升权限。


五、权限常见的问题

1、目录的权限

如果我们要进入一个目录,需要什么权限呢?这个答案就是 x 权限。

演示:

从上图中我们可以看到,如果去掉了 x 权限,我们就不能进入目录了。

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

2、umask

Linux默认:

一个目录被创建,起始权限是:777。

一个普通文件被创建,起始权限是:666。

但是看下图,为什么显示出来的文件权限不是上面默认的那样呢?

下图中,dir的权限是775,zdl.txt的权限是664。

我们发现文件或目录的起始权限和最终权限并不一样。其实这就和linux中的umask有关了。

umask:叫做权限掩码。规定:凡是在umask中出现的权限,都不应该在最终权限中出现。(一般来说,umask默认为002)。

最终权限的算法:最终权限 = 起始权限 & (~umask)

举个例子:~umask二进制为 111  111  101。目录的起始权限为777,其二进制为 111  111  111。两者按位与为 111  111  101。转换成八进制775。

注:umask是可以人为改变的。

3、粘滞位

假如有如下场景:当有多个用户在同一路径下,并共享同一个目录,共同维护多个文件。

问题:一个用户能够删除属于另一个用户的文件吗?

可以。因为从上面目录的权限中我们知道:如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。

所以,在目录中创建和删除里面文件的权限不是文件本身的权限,而是目录的权限。

既然有多个用户在同一个目录下能够创建文件,那就说明这些用户对该目录有写的权限,而有了对该目录的写的权限后,我们自然而然就有了对该目录下的所以文件进行删除的权限。那么一个用户能够删除属于另一个用户的文件。

但是,这合理吗?这当然不合理。我辛辛苦苦写好的文件,别人只要动一动键盘,就可以在不经过我的同意下删除它,这当然是不被允许的。所以,为了解决这个问题,就有了粘滞位。

在一个公共目录中,大家各自可以进行rwx操作,但是禁止大家互删对方的文件,因此我们需要给这个公共目录设置粘滞位(权限的一种特殊情况)。

用法:在根用户下,chmod  +t  目录

去掉粘滞位:chmod  -t  目录

注:1、粘滞位只能给目录设置。2、一般是谁设置,谁才能取消(root除外)。

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
1、超级管理员删除
2、该目录的所有者删除
3、该文件的所有者删除

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

electron安装报错:Electron failed to install correctly...解决方案

问题描述: 按照官方文档在yarn dev时报错: 一般遇到Electron failed to install correctly,please delete node_moules/electron and try installing again这种错误时,就是electron本体没有下载成功 解决方案: 1、…

GaN HEMT 电容的分析建模,包括寄生元件

标题:Analytical Modeling of Capacitances for GaN HEMTs, Including Parasitic Components 来源:IEEE TRANSACTIONS ON ELECTRON DEVICES(14年) 摘要:本文提出了一种基于表面势的终端电荷和电容模型,包…

Android 10.0 系统默认打开OEM解锁开关功能实现

1.前言 在10.0的系统定制中,在9.0系统以后为了设备的安装,系统开始启用oem机制,所以在adb push文件就需要先oem解锁,然后才可以 进行相关操作,所以就需要默认打开oem解锁的开关,来方便oem解锁功能的实现 如图: 2.系统默认打开OEM解锁开关功能实现的核心类 packages\ap…

【计算机网络笔记】网络层服务模型——虚电路网络

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

【C++数据结构】线性表的本质和概念

文章目录 前言一、线性表的定义1.1 线性表的定义1.2 线性表的表现形式1.3 线性表 ( List ) 的抽象定义1.4 线性表的性质1.5 简单解释 二、生活中的线性表三、抽象实现线性表List3.1 线性表的本质和操作3.2 抽象实现 总结 前言 在计算机科学与数据结构领域,线性表是…

使用comicai绘制漫画

在bard中输入提示语: 再写一个关于校园爱情的漫画脚本,里面的角色要求都是人类,没有动物,简短,用英文 填写漫画标题和作者: 将bard生成的脚本如何框中: 选择并生成角色形象(通过提示…

Docsify 和 Hugo 之间的选型

对文档的编译,目前的发布方案是越来越注重 MD 的编辑和发布。 针对其他 Wiki 的选择,MD 文件的编辑通常会保留修改记录,同时不依赖中央数据库和其他类型的 Web 应用服务。 随着各大云平台的支持,包括 GitHub Page 和 Google 的 …

时序预测 | MATLAB实现WOA-CNN-LSTM-Attention时间序列预测(SE注意力机制)

时序预测 | MATLAB实现WOA-CNN-LSTM-Attention时间序列预测(SE注意力机制) 目录 时序预测 | MATLAB实现WOA-CNN-LSTM-Attention时间序列预测(SE注意力机制)预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述 1.MATLAB实…

AI:72-基于深度学习的火灾检测

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

【LeetCode刷题笔记】栈和队列

456. 132 模式 解题思路: 1. 单调递减栈,栈中存放的值当作 k 值,从右往左遍历数组,对于遇到的每一个元素 j 找最大的 k,遇到 nums[j] > 栈顶</

mysql explain type 枚举

explain 查看 sql 查询是否走索引。 其中 type 的枚举如下 类型说明system表只有一行&#xff08;系统表&#xff09;&#xff0c;这是 const 类型的特例const单表中的某个固定的值eq_ref使用唯一索引等值查找一个行ref使用非唯一索引查找所有匹配某个单个值的行fulltext使用…

如何摆脱自卑心理,自我提升和自我接纳是关键

自卑心理主要是由于缺乏对自己的客观评价&#xff0c;常常自我否定&#xff0c;缺乏自信心&#xff0c;不敢拿主意做决定&#xff0c;他们性格敏感&#xff0c;缺乏勇气&#xff0c;不敢发表自己的意见&#xff0c;总是将错误归结为自己不够好&#xff0c;不够努力等等。 适度…

多语言翻译软件 Mate Translate mac中文版特色功能

Mate Translate for Mac是一款多语言翻译软件&#xff0c;Mate Translate mac可以帮你翻译超过100种语言的单词和短语&#xff0c;使用文本到语音转换&#xff0c;并浏览历史上已经完成的翻译。你还可以使用Control S在弹出窗口中快速交换语言。 Mate Translate Mac版特色功能…

浅谈无线测温产品在马来西亚某配电项目的应用

摘要&#xff1a;配电系统是由多种配电设备和配电设施所组成的变换电压和直接向终端用户分配电能的一个电力网络系统。由于配电系统作为电力系统的一个环节直接面向终端用户&#xff0c;它的完善与否直接关系着广大用户的用电可靠性和用电质量&#xff0c;因而在电力系统中具有…

这些Mac视频格式转换神器,大赞666~

转换视频格式相信是很多朋友在平时工作和学习过程中的刚需&#xff0c;并且有很多人经常问小编这块的问题。 特别是一些使用Mac的朋友。 因此&#xff0c;小编今天就来给各位Mac用户安利几个好用的视频转换软件。 1、VideoProc VideoProc 功能强大&#xff0c;可以把视频甚…

适用于4D毫米波雷达的目标矩形框聚类

目录 一、前言 二、点云聚类分割 三、基于方位搜索L型拟合 四、评价准则之面积最小化 五、评价准则之贴合最大化 六、评价准则之方差最小化 一、前言 对于多线束雷达可以获取目标物体更全面的面貌,在道路中前向或角雷达可能无法获取目标车矩形框但可以扫到两边或者一边…

维控PLC——LX2N :编程口通讯协议

文章目录 说明通讯帧通讯命令字通讯数据地址维控 LX2N&#xff08;LX2V&#xff09;通讯协议举例 说明 该协议适用于维控LX2N系列PLC&#xff0c;关于维控 LX1S的协议在另一篇文章中描述。 通讯帧 通讯采用ASCII码&#xff0c;校验方式采用和校验。 请求帧格式:报文开始命令…

【计算机网络基础实验】实验二(补充内容)路由器的配置和静态路由

任务一 IP路由协议实现企业路由器通信 目录如下&#xff1a; 任务一 IP路由协议实现企业路由器通信[TOC](目录如下&#xff1a;) 一、实验目的&#xff1a;二、实验环境三、实验内容四、实验步骤1、路由器的基本配置&#xff08;1&#xff09;实验拓扑图&#xff08;2&#xff…

文件系统.

终极目标&#xff1a; inode 和 软硬连接 文件系统 &#xff1a;Ext2 之前谈论的是一个被打开的文件&#xff01; 如果一个文件没有被打开呢&#xff1f;&#xff1f;磁盘中进行存储的。 我们会关心如下问题 1、路径问题 2、存储问题 3、获取的问题&#xff08;属性 文件内容…

java--封装

面向对象的三大特征&#xff1a;封装、继承、多态 1.什么是封装 就是用类设计对象处理某一个事物的数据时&#xff0c;应该把要处理的数据&#xff0c;以及处理这些数据的方法&#xff0c;设计到一个对象中去。(每一个类都可以看成封装) 2.封装的设计规范 合理隐藏、合理暴…