大号在练葵花宝典 发表于 3 天前

Linux中的权限概念

前言

前面的文章当中我们先容了Linux体系的根本概念以及Linux体系的根本指令,对Linux体系有了一些简单的明白,基于这些明白,我们在今天的文章当中将开始谈论Linux的权限问题,废话不多说,我们直接开始,如果觉得本篇文章对您有所帮助的话,记得点赞收藏加关注,您的支持就是我创作的最大动力。
相关文章:
Linux体系的先容及操作体系的根本概念

Linux根本指令(保姆级教学)
Linux下的用户

Linux体系是一个支持多用户的操作体系,分为两种用户:
   超级用户(root):管理员用户,在Linux体系下可以执行任何操作,不受限制
普通用户:在Linux体系下只能执行部分操作,存在限制
提示:在下令行当中,区分超级用户和普通用户的标记是“#”与“$”
那么,如何进行用户创建与用户切换呢?我们在这里先容以下几种下令:
   创建用户:adduser [用户名]
设置密码:passwd [用户名]
删除用户:userdel -r
切换用户:su [用户名]
举个例子:
   我们在这里创建普通用户aaa,设置密码
https://i-blog.csdnimg.cn/direct/fc4c1e464c1d4165923c95bd8dbf63b1.png
接下来我们切换用户/删除用户
https://i-blog.csdnimg.cn/direct/01213e9602b6489b836249f5c41135c4.png
值得注意的是,root账号切换普通用户不需要输入密码,但是普通账号切换root账号需要输入root账号的密码,同时,普通账号切换普通账号,也要输入密码
那么,我们如何知道当前root账号下,有多少个普通用户呢?实际上,Linux体系下的用户生存在/etc/home这个路径下,如果我们要知道当前root账号下,普通用户的信息,我们可以用cat指令检察当前路径下的文件信息,也可以使用ls指令。
普通账号和root账号的区别

实际上,他们之间最大的区别就是权限的差异,对root账号来说,如果我们要在当前体系上进行任何操作,这样都是被操作体系所允许的,纵然我们要删除整个体系;但是对于普通用户,如果我们要对设置文件进行操作,操作体系是不允许的,纵然我们想要执行整个操作,那么操作体系也会进行扣问。
那么,为什么要有这样的区别呢?
实际上,其中第一个目的是,为了实现多用户协作。我们都知道,Linux是一个多用户的操作体系,那么对于企业在进行开辟时,一个团队可以在同一个root账号下进行代码编辑,这样进步了开辟的效率;第二个目的是为了防止用户误操作。一般情况下,我们都建议用户使用普通账号进行操作,这样可以防止用户误操作而带来的丧失。
但是,在实际工作中,我们使用普通账号进行开辟时,偶然间需要安装程序,大概需要更大的权限等,但是普通账号又没有这么大的权限,我们应该怎么办呢?Linux提供了sudo指令:
   sudo:不切换root,以root权限运行
用户白名单

我们在进行sudo指令时偶然会遇见指令无法执行的问题,这个问题的本质是由于该用户没有在root账号的白名单内(不被体系所信任),因此,我们要手动将该用户田间至白名单,而用户白名单在/etc/sudoers路径下,操作步骤如下所示:
   第一步:检察用户白名单
cat /etc/sudoers
https://i-blog.csdnimg.cn/direct/bdbc8d3394334ceaba4ef56e7ff03407.png
我们可以看到,root ALL=(ALL) ALL就是被操作体系所信任的用户
第二步:添加用户
vim /etc/sudoers我们打开该文件
第三步:找到上述图片中的位置(大概在100行左右)
https://i-blog.csdnimg.cn/direct/a19da593e7334bdda16ae8d5ae2a573e.png
第三步:按两下y键复制当前行,然后按p键复制当前行
第四步:按i进入插入模式,将复制的那一行的root改成所要添加的用户
第五步:按esc进入下令模式,之后按shift+;进入底行模式,之后w+!强制生存,然后q+!强制退出
由此我们便完成了将用户添加至白名单的操作,之后我们就可以正常运行sudo指令
Linux的权限管理

前面我们知道,Linux下统统皆文件,那么,Linux的权限管理实际上是对文件权限的管理,那么文件权限是如何进行管理的呢?实际上是通过文件的访问者进行管理的。
   文件的访问者
拥有者(user):文件和文件目录的所有者,例如,当前用户
所属组(group):文件和文件目录的所有者所在的组,例如,普通用户所在的组是root账号
其他用户(others)
权限的明白

   权限=人+事物属性
文件权限=用户+文件属性(用户属性)
Linux中的三种角色,要由人来扮演
Linux的文件类型与访问权限

   windows区分文件类型是通过文件的后缀区分的
Linux区分文件类型是用文件的属性列区分的
https://i-blog.csdnimg.cn/direct/0c53cd22b96941758dd409e9be865063.png
其中,d开头表现目录,-开头表现普通文件
那么,我们如何才能知道一个文件所能操作的权限呢?实际上一个检察一个文件的权限我们可以用ll下令进行检察,如下图所示:
https://i-blog.csdnimg.cn/direct/06e9ea4a412b4451bb8b2075359beae4.png
我们可以看到,文件属性后面有一系列的rwx等信息,以及root root,这些都是什么意思呢?实际上,rwx表现文件的根本权限,它们每三个为一组,对应文件的拥有者和所属组,后面的第一个root表现当前文件或目录的拥有者是root,第二个root表现当前文件或目录的所属组是root。
根本权限

   读权限(r):对文件来说,该权限表现可以读取文件内容;对于目录来说,该权限表现可以浏览该目录
写权限(w):对文件来说,该权限表现可以修改文件内容;对于目录来说,该权限表现可以移动和删除该目录
执行权限(x):对文件来说,该权限表现具有执行的权限;对于目录来说,该权限表现可以进入该目录
https://i-blog.csdnimg.cn/direct/fd3c5ba394fc446f9e1b1d0ca83f3655.png
如上图所示,我们创建了111 222 333这三个文件,对于文件111而言,权限可以看作:对拥有者和所属组有读和写的权限,对其他用户开放读的权限,该文件的拥有者是fujinyu用户,所属组是root
文件权限的修改

前面我们先容了,Linux通过管理拥有者和所属组的根本权限,从而到达权限管理的目的,那么,我们该如何修改一个文件或目录的权限呢?接下来我们将先容文件权限的修改方法。
访问权限的修改

   chmod
功能:修改文件的访问权限
用法:chmod 【参数】 权限 文件名
阐明:只有文件的拥有者和root才可以改变文件权限
常用选项:
R:递归修改目录文件的权限
那么我们该如何修改文件的访问权限呢?下面我们先容chmod权限值的格式。
   用户符号:
u:表现拥有者
g:表现所属组
o:表现其他用户
a:表现所有效户
用户表现符:
+:向权限范围增加权限代号所表现的权限
-:向权限范围取消权限代号所表现的权限
举个例子:
https://i-blog.csdnimg.cn/direct/c70488fec411418abd3806938b241f8e.png
如上图所示,我们通过chmod u+rwx 111这条指令,给111这个文件的拥有者加上了读写以及可执行的权限,我们发现,当我们加上x权限后,该文件的颜色发生了变革,这表明,该文件酿成了一个可执行文件,即:我们可以直接在下令行当中运行该文件
除了上述例子当中通过指定文件拥有者更改文件权限的方式,我们还可以通过八进制数字更改文件权限,如下图所示:
   https://i-blog.csdnimg.cn/direct/00038664dad94521864cba22c538cf21.png
从运行结果上看,我们通过chmod 777 222这条指令给222这个文件的拥有者 所属组以及其他都加上了rwx权限,那么为什么可以用八进制数字表现所要更改的权限呢?
我们将777这个八进制数字转化成二进制数字发现,它所表现的二进制数字是111 111 111,我们都知道0为假1为真,对于权限列表,我们可以明白成,该二进制数字每三个为一组,其中的每一位表现对应位置是否具有该权限。
拥有者的修改

   chown
功能:修改文件的拥有者
用法:chown 【参数】用户名 文件名
举个例子:
https://i-blog.csdnimg.cn/direct/32341daf7e39438b83e596ce340f4fde.png
如上图所示,我们通过chown ttm 111这个指令,将111这个文件的拥有者改成了ttm这个用户
所属组的修改

   chgrp
功能:修改文件或目录的所属组
用法:chgrp 【参数】用户组名 文件名
举个例子:
https://i-blog.csdnimg.cn/direct/888f2d737f184f719a97022423a6e031.png
如上图所示,我们通过chgrp ttm 111这个指令,将111这个文件的所属组改成了ttm这个用户
权限掩码

当我们相识了权限的修改方法后,我们不禁好奇,Linux体系下我们所创建的目录以及文件他们的默认权限是怎么得来的呢?接下来,我们先看下面的现象:
   https://i-blog.csdnimg.cn/direct/b82e72742cd84afb9522a03ff6b9814f.png
我们在当前路径下,默认创建了一个文件和一个目录,我们发现普通文件的默认权限用八进制表现为:664;目录的默认权限用八进制表现为:775
那么这个默认权限是如何得来的呢?接下来,我将先容权限掩码的概念。
   检察权限掩码:umask
https://i-blog.csdnimg.cn/direct/90a18e6f88654105a69436056434f145.png
我们把0002这个数字称为权限掩码,这个数字我们可以自行设置,例如:我们将权限掩码设置成000后再来观察默认创建的文件和目录的权限:
https://i-blog.csdnimg.cn/direct/348a99c0f96149fea0cc13cd54252e0c.png
我们可以看到,当我们把权限掩码设置成000后,普通文件的默认权限用八进制表现为:666;目录的默认权限用八进制表现为:777
由此我们可以得出结论:权限掩码是用来修改体系文件默认权限的
那么权限掩码是如何得出默认权限的呢?
   终极权限=起始权限去掉umask权限值,即:终极权限=起始权限&(~umask)
目录的权限

   可读权限(r):表现是否允许用户检察执行目录下的文件信息,如果没有可读权限,则无法用ls检察目录中的文件内容
可写权限(w):表现该用户是否可以修改或删除指定目录,如果目录没有可写权限,则无法在目录中创建文件和删除文件
可执行权限(x):表现是否允许用户进入目录,如果目录没有可执行权限,则无法cd到目录中
以是可以得出下面结论:
一个文件是否被删,依赖于所属的目录;一个目录是否允许被访问,依赖于目录的可执行权限
由此,在多个用户协作的项目当中,我们一般将该文件或数据放在root账号的公共目录下,普通用户以other的身份实现资源和数据共享。
但是此时存在一个问题,根据上面我们所得出的结论,只要用户有目录写的权限,该用户就可以删除目录中的文件,而不论该用户是否具有该文件写的权限,为相识决这个问题,我们引入粘滞位的概念。
粘滞位

   粘滞位:chmod+t 【目录名】
意义:
表现该目录下的文件只能由超级管理员、该目录的所有者、该文件的所有者删除。
小结

本篇文章我们重点先容了Linux体系下root和普通用户的区别,以及权限管理,Linux体系通过对文件和目录的权限管理到达对体系权限的管理,保证了体系的正常运行,方便用户进行协作

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux中的权限概念