【Linux】Linux文件权限的理解


目录

一、Shell是什么?

1、Shell承担用户和内核间的翻译工作

2、拒绝用户非法请求,保护内核

3、派生子进程执行用户指令

二、用户切换与提权

1、普通用户与root用户的切换

2、普通用户指令短暂提权

三、文件权限的理解

1、文件权限=角色的权限+文件属性

2、Linux中的三种角色

2.1为什么会存在所属组(grouper)这种角色

3、drwxrwxr-x代表的意义

3.1第一位字母代表的意义

3.2后九位代表的意义

3.3文件权限的字符修改方法

3.4角色的更改

3.5文件权限的八进制修改方法

3.6目录的起始权限及权限掩码umask

4、目录的权限

四、粘滞位(公共目录使用)


一、Shell是什么?

Shell是操作系统外壳程序的统称,Windos中的图形化界面、Linux中的命令行外壳都是外壳程序。CentOS中的外壳程序被称为bash。

1、Shell承担用户和内核间的翻译工作

Shell是命令行解释器。

Linux严格意义上说的是一个操作系统,我们称之为"核心(Kernel)"。但是用户和内核沟通的学习成本很高,所以在内核外部有一层Shell外壳程序,将用户输入的指令翻译传递给内核,内核处理后,将结果返回给Shell,由Shell向用户传达指令的最终结果。

2、拒绝用户非法请求,保护内核

当用户输入非法指令时,shell不会再去询问内核结果,而是直接拒绝用户的非法请求。

3、派生子进程执行用户指令

因为Shell是用户和内核沟通的唯一桥梁,一般Shell不参与指令的执行,而是通过派生子进程的方式执行用户的指令。(子进程挂了,但Shell不会受到影响)

二、用户切换与提权

1、普通用户与root用户的切换

su//切换后路径不变
su -//切换后来到家目录

普通用户切换为root用户需要输入root密码,而root用户切换成普通用户无需 任何验证。

2、普通用户指令短暂提权

sudo whoami

当该用户被添加至etc/sudoers中,sudo为最近的一条指令提权至root,需要输入当前普通用户密码。

在一次密码认证过后,接下来的几分钟使用sudo提权操作,将无需再次输入密码。

为什么sudo提权需要输入当前用户的密码,而不是root密码呢?这样做是为某些被信任的用户,提供最少的执行障碍。而不是直接将root的密码交给员工。

三、文件权限的理解

1、文件权限=角色的权限+文件属性

对于Linux中的文件权限,有的角色对这个文件有可读、可写、可执行的权限,而有的角色却只有可读权限。这是人的权限。

对于文件的可读、可写、可执行的属性,如果一个文件不具备可读权限,那么角色在访问文件时,也是没有可读权限的。

2、Linux中的三种角色

Linux中有三种角色,分别是拥有者(owner)、所属组(grouper)、其他人(other),权限限制的不是用户,而是这个用户当前所处的角色

2.1为什么会存在所属组(grouper)这种角色

举个例子:现在公司有A、B、C等多个部门使用同一台Linux的云服务器,每个小组都有各自的小组成员,所以就有了所属组的概念。把不同的组员放到各自的所属组中,员工无权限访问他组文件,防止项目信息互相泄露。

3、drwxrwxr-x代表的意义

3.1第一位字母代表的意义

第一位字母代表的意义是文件的类型。

在windows中,区分文件类型是通过文件名后缀,而Linux中,文件的类型由第一位字母决定,与文件本身的后缀无关。(Linux中文件后缀作用是帮助用户快速区分这个文件的类型或者gcc等工具是需要关注后缀)

d:目录文件

-:普通文件(源代码、库文件、可执行程序、文档压缩包等)

c:字符设备文件(键盘、显示器等串口设备)

b:块设备(硬盘、光驱等)

l:软链接文件(类似于Windows中的快捷方式)

p:管道文件

s:socket套接口文件

3.2后九位代表的意义

后九位三三为一组,分别代表拥有者、所属组、其他用户的权限。其中r代表可读,w代表可写,x代表可执行。-代表不具备该权限。

3.3文件权限的字符修改方法

chmod u-r text.c//将text.c的拥有者减去可读权限
chmod g+x text.c//将text.c的所属组加上可执行权限
chmod o+rwx text.c//将text.c的其他用户减去读、写、可执行权限
chmod u+rx,g-w,o-rwx text.c//可以组合操作权限的增减
chmod a-rwx text.c//对所有角色减去读、写、可执行权限

只有文件的拥有者和root才能对文件角色的权限进行更改。

root不受角色权限的约束。

3.4角色的更改

sudu chown jly2 text.c//把text.c的拥有者改成jly2
sudo chgrp jly2 text.c//把text.c的所属组改成jly2
sudo chown jly2:jly2 text.c//把text.c的拥有者、所属组改成jly2

拥有者、所属组更改后,other也变了,所以other不用特意改。

3.5文件权限的八进制修改方法

三三为一组,非-位用二进制1填充,-位用0填充,得到角色权限的二进制,在将这些二进制转化为八进制,即可使用八进制来表达角色的权限。

chmod 000 text.c//用权限的八进制更改text.c的权限

3.6目录的起始权限及权限掩码umask

Linux规定,目录的起始权限从777开始,普通文件的起始权限从666开始。

[jly@VM-4-11-centos text]$ umask
0002//第一位不管,系统会默认配置好权限掩码为002,即000 000 010

凡是在umask中出现的权限,必须在起始权限中去掉,即最终权限=起始权限&(~umask)。

所以,我们创建出来的目录的权限是775(rwx rwx r-x),普通文件的权限是664(rw- rw- r--)。

umask 0444//更改umask的值,即100 100 100

修改后创建出来的目录权限变为333,普通文件权限变为222。

4、目录的权限

目录的r权限:能否查看目录中的文件。

目录的w权限:能否在目录中创建文件。

目录的x权限:能否进入、执行目录中的文件

所以,目录的起始权限从777开始,是因为所有角色都需要x权限进入目录。

四、粘滞位(公共目录使用)

Linux系统中有很多人,我们需要在一个公共的目录下,进行临时文件的操作(增删查改)。这个公共目录由root来创建。

在这个公共目录中,通过文件自身的权限来约束不同的角色,但是无法阻止其他用户私自删除这些文件。因为在目录中删除一个文件,与这个文件本身无关,与它所处的目录的写入权限有关。

这个公共目录的拥有者和所属组是root,粘滞位会限制other的权限。

chmod +t /mytmp   //在/目录下的mytmp目录中加上粘滞位
drwxrwxrwx
drwxrwxrwt

加上粘滞位后,该公共目录的other的x权限变为t,也就是该目录下other的可执行权限变为粘滞位,其他用户无权删除不属于他的文件。

五、权限总结

1、目录的可执行权限是表示你可否在目录下执行命令。

2、如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)

3、如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

 14天阅读挑战赛 

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

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

相关文章

Linux文件的rwx含义,Linux文件权限rwx简单了解

Ⅰ 了解Linux下的文件权限 如上图所示,ll命令详细展示当前目录下的文件或者子目录信息 红框标注的即为此文件或者目录的权限 【第一行文件10.c的权限以-开头,用来说明这是一个文件;第四行code目录的权限以字母d开头,用来标注code是目录】 关于文件权限,我们要先了解有那些…

Linux文件权限管理命令

今天继续给大家介绍Linux基本知识,本文主要内容是介绍Linux文件权限相关命令。 一、chown命令修改文件属主 在Linux系统中,chown命令可以更改文件的属主和属组,chown命令使用示例如下: chown user.user target chown user:user…

Linux文件权限修改

Linux文件权限修改 一.文件属性查看 使用root创建一个1.txt文件进行实例 touch /opt/1.txt查看文件属性 ls -l /opt/1.txt可以看到图中红色框框内列出了文件的信息属性,从左到有进行性详解 1. -rw-r--r-- 参考下图进行理解 共有10个字符,如果第一个…

Linux文件权限的设置

本文章主要介绍了对Linux文件的权限以及如何设置权限。 一、查看文件的权限与属性 ls -l 或者 ll查看文件属性 二、可以列出如下图所示的一些信息 -rw-r--r-- 第一位代表文件类型 d 表示目录 l 表示链接文件 - 表示普通文件 b 表示快设备文…

Linux文件权限查看与修改

Linux文件的权限 linux文件的权限可以分为四类:可读、可写、可执行、没有权限。分别用字符r、w、x、- 表示。 2. 用户与用户组 Linux是一个多用户多任务的操作系统,可以通过用户和用户组来更好的控制文件的权限。 每个文件都有一个拥有者(某一…

【C++入门】什么是内联函数?

目录 一、概念 为什么要有内联函数? 内联函数设计的初衷是为了替代部分 #define 宏定义 二、特性 1.空间换时间 2.编译器做主 3.声明定义放一起 总结 一、概念 以inline修饰的函数叫做内联函数,编译时C编译器会在调用函数的地方展开,没有…

CAD圆弧

import dxfgrabberinputFilePathe:/test3-11/Drawing2.dxf #输入文件的路径dxf dxfgrabber.readfile(inputFilePath)#按图层访问 # for layer in dxf.layers: # #print(layer.name,layer.color,layer.linetype) # print("图层名:",layer.name)l…

CAD电气制图中怎么用圆弧连接导线?

在CAD电气制图过程中经常会需要连接两条导线,那么你知道CAD软件中怎么用圆弧连接两条导线呢?浩辰CAD电气软件中提供了便捷的圆弧连接功能,接下来的CAD电气制图教程就和小编一起来看看浩辰CAD电气软件中圆弧连接功能的相关使用技巧吧&#xff…

php中划弧线,cad画弧形的快捷键是什么?如何画弧形?

cad画弧形的快捷键是A,画弧形的方法:首先确定圆心,并点击圆弧命令;接着继续输入C进行圆心的确定,并调整半径和位置;最后点击选择两个端点后exc退出即可完成。 cad画弧形的快捷键是A,画弧形的方法…

你知道CAD软件将圆弧与直线转换成多段线的方法吗?

CAD制图时想要对直线与圆弧构成的整体对象进行多段线编辑,首先需要将这个对象转换成多段线。本文将介绍CAD如何将直线与圆弧连接成多段线。 1.使用CAD软件打开需要进行操作的图纸文件,用夹点拾取一下,从右边的特性栏可以看到这个图形是由4条…

圆弧的绘制

圆弧的分类 圆心/起/终点画圆弧 其操作方法类似于圆命令,第一次单击鼠标左键,确定圆心,移动鼠标,再次单击鼠标左键确定半径,最后通过移动鼠标来确定圆弧长度(若不移动就单击鼠标左键,则取消该次…

AUTOCAD——圆弧命令

创建圆弧。 执行方式 命令行:AEC 菜单栏:绘图→圆弧 工具栏:圆弧命令图标 “圆弧命令操作命令位置”界面 执行以上命令后,命令行会显示以下信息: 选项说明 (1)起点:指定第一个点…

chatgpt赋能python:Python中字符串的转换方法

Python中字符串的转换方法 作为一门非常强大的编程语言,Python在字符串的处理上也有着非常丰富的功能。在Python中,字符串是非常重要的数据类型之一,也是最常用的数据类型之一。字符串在Python中有着很多的用途,比如表示文本数据…

学习cad画圆弧

今天我们就来学习画圆弧。首先我们来看看下面的图形就很容发现a、b两条线都是圆弧。 1 这里我们就来学习如何画a、b圆弧。 先按照图上标识的尺寸画好两个圆。 2 执行画圆弧命令。c-空格键-t-空格键执行命令。此时鼠标手型变成一个小圆圈,找到需要画圆弧连接的地方点…

HTML如何画一段弧,css3如何画圆弧

css3如何画圆弧.circle1 { width: 100px; height: 200px; border: 1px solid black; border-radius: 100% 0 0 100%/50%; border-right: none; } .circle2 { width: 200px; height: 100px; border: 1px solid black; border-radius: 50% 50% 0 0/100% 100% 0 0; border-bottom:…

matlab画指定角度圆弧,CAD中如何根据指定的角度画圆弧

在用CAD绘图的过程中,我们有时候需要根据一个指定的角度画出相应的圆弧,那么怎么操作呢? 下面跟着小编一起来学习吧 方法一: 1、首先,大家打开中望CAD软件 2、利用软件绘图功能的画“圆”功能画出一个半径为R的圆&…

CAD梦想画图中的“绘图工具——圆弧”

CAD在线绘图绘制圆弧,可以指定圆心、端点、起点、半径、角度、弦长和方向值的各种组合形式。绘CAD制圆弧的方法是,选取起点、第二点和端点。 执行方式 (1)单击菜单栏“绘图→圆弧”。如图: (2&#xff09…

画圆弧方法

已知圆心坐标P,圆上一个点坐标A,A-P直线以圆心旋转角度x后,求新的A点坐标P新.x (A.x - P.x) cos((x/180)*PI) P.xP新.y (A.x - P.x) sin((x/180)*PI) P.y <Path x:Name"test" Stroke"AliceBlue" StrokeThickness"4" Width"100"…

CAD绘圆弧命令

1.单击菜单栏&#xff0c;“绘图->圆弧。 2.单击绘图工具栏绘”圆弧命令”按钮。 3.在命令行中输入Arc&#xff0c;按回车键。 执行命令后&#xff0c;命令行将显示如下信息&#xff1a; 命令: Mx_Arc 指定圆弧的起点或 [圆心(C)]: 指定圆弧的第二个点或 [圆心(C)]: 指定…

CAD制图教程:CAD软件中怎么画圆弧梯段?

在使用国产CAD软件绘制建筑CAD图纸的过程中&#xff0c;有些时候会需要画圆弧梯段。但是有些小伙伴刚开始进行CAD制图初学入门学习不知道在浩辰CAD建筑软件中该如何绘制直线梯段&#xff1f;下面就让小编来给大家介绍一下国产CAD制图软件——浩辰CAD建筑软件中绘制圆弧梯段的相…