【Linux】权限(shell运行原理、概念,Linux权限)

秦jh_ 2024-07-26 09:37:02 阅读 90

  🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm=1010.2135.3001.5343

🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12625432.html

9efbcbc3d25747719da38c01b3fa9b4f.gif

目录

shell命令以及运行原理 

创建和删除用户

创建新普通用户 

删除用户

Linux权限的概念 

 Linux权限管理

文件访问者的分类(人)

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

文件类型 

 基本权限

 如何理解x?

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

chmod

chown

chgrp

 umask

目录的权限

粘滞位


前言

💬 hello! 各位铁子们大家好哇。

             今日更新了Linux的权限的内容

🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝

shell命令以及运行原理 

Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。 

帮助理解:如果说张三是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是张三村头漂亮且心动的MM如花。他看上了如花,但是有不好意思直接表白,就让家人找媒婆帮他提亲,所有的事情他都直接跟媒婆沟通,由媒婆转达他的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。

 

Shell外壳的存在,可以对请求进行合法性检查,变相的保护OS。 

Shell是外壳程序的总称,bash就是具体的一款外壳程序。 

创建和删除用户

当我们在第一次使用linux时最开始都是只有一个超级用户(root),而普通用户则是用过超级用户进行创建而形成的,所以我们首先来在超级用户下进行创建一个普通用户 

创建新普通用户 

第一步:首先进入linux系统中输入指令 whoami 显示root则表示当前用户为超级用户,接下来我们就可以继续进行创建新的普通用户操作。

第二步:输入 adduser+要创建的用户,接着我们passwd+用户名设置该用户的密码,密码设置最少7位,不能太简单,不然会报错,这里建议字母+数字,再重复输入新密码(注意这里输入密码不回显)当出现all authentication tokens updated successfully则表示新用户已经创建成功,一般创建的新用户会在home目录下生成一个该用户名命名的文件夹。到这里我们的新普通用户就算是已经创建成功了。

删除用户

userdel -r+用户名 

当我们想要对普通用户进行删除时,首先我们先切换超级用户root,然后我们使用指令 userdel -r+用户名 进行删除普通用户操作。

注意

不要使用userdel+用户指令进行删除,因为这样只会删除该用户,而不会删除home目录下的该用户的文件夹,相当于存在残留,没有删除干净。

当在进行一次userdel+用户操作时则显示不存在该用户,但是查询该home目录时还存在该文件夹,这时我们在adduser+用户名发现弹出警告说home目录中已经存在该文件夹, 

如果不小心userdel +用户名,解决方法是:进行adduser+刚才的用户名,然后userdel -r+用户名 ,这样就能解决了。

Linux权限的概念 

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

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

命令:su [用户名]

功能:切换用户。

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

注意:从root切换到普通用户,不需要输入密码。从普通用户切换到root,需要输入密码。

 Linux权限管理

当我们是普通用户时,创建的文件拥有者就是我们自己。如果想在普通用户身份下,创建拥有者是root的文件,可以使用sudo,进行提权,不过sudo的使用,需要进行配置,后面再说明。 上方不能进行提权是因为没有进行配置。

文件访问者的分类(人)

文件和文件目录的所有者:u---User(中国平民 法律问题)文件和文件目录的所有者所在的组的用户:g---Group(不多说)其它用户:o---Others (外国人) 

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

文件类型 

d:文件夹

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件 

window中,如果把一个文件后缀名改了,可能就打不开文件了。但是linux不一样,即使修改了后缀,也能打开它 。

 基本权限

i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

iv.“—”表示不具有该项权限

 如何理解x?

 能执行=具有可执行权限+你就是一个可执行文件

上图中,test.c具有可执行权限,但不是一个可执行文件,所以无法执行。

如果某文件是可执行文件,但它没有可执行权限,同样无法执行。        

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

chmod

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

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

常用选项: 

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

chmod命令权限值的格式

+:向权限范围增加权限代号所表示的权限-:向权限范围取消权限代号所表示的权限=:向权限范围赋予权限代号所表示的权限用户符号: u:拥有者g:拥有者同组用o:其它用户a:所有用户 

 上方是用chmod修改权限的例子。 这是第一种方式。

除了上方用o、g、u修改权限,还可以用八进制进行修改,如下:(第二种方式)

 

 如果拥有者没有权限,也无法进行操作。但是root不一样,没有权限,也能照样操作文件

上图中,我既是拥有者,也是所属组,但是我依然无法进行操作。那是因为对用户身份的识别只进行一次,此时我被识别为拥有者,就只有拥有者的权限,而没有所属组的权限。

chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名 

我们想把拥有者修改为xjh,但是无法执行,因为chown的操作者必须是root。或者我们可以进行sudo进行提权,由于上方没有配置,所以无法进行提权。  

chgrp

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

格式:chgrp [参数] 用户组名 文件

常用选项:-R 递归修改文件或目录的所属组 

chgrp的使用和chown一样。 

如果我们想一次性修改拥有者和所属组,只需在中间加上冒号即可。如上图。 

 umask

功能:

查看或修改文件掩码

新建文件夹默认权限=0666

新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & (~umask)

格式:umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用 户默认为0002。 

 

  

我们可以查看掩码,或者主动修改掩码 

起始权限是0666,对应的权限应该是rw-rw-rw-。可上面的文件却不是 ,这就跟权限掩码有关了。

 我们对掩码取反,再与默认权限进行按位与操作。最后结果就是rw-rw-r--了。

目录的权限

只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写 权限.那么,如何创建一个可以多人共享的目录呢?

首先可以确定的是,这个目录肯定不能在家目录里面。只能在根目录,此时只有root才能创建。

因为这是一个要共享的文件,我们还得把other的w权限打开。 这样其他用户就可以在里面创建文件了。

假设text.txt是张三创建的共享文件,李四与他进行共享,因为李四也需要写入,就打开了other的w权限。突然冒出了王五,他却把这个共享文件删了(因为王五也是other,share目录把other的w权限放开了)。那要怎样才能让这个共享文件可读可写,但不能别人删呢?这时就需要用到粘滞位。

粘滞位

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

超级管理员删除该目录的所有者删除该文件的所有者删除 

 粘滞位是针对目录的,针对other的。粘滞位就是加强版的x。

设置了粘滞位后,王五就不能删除这个目录里的文件了,便实现了共享。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。