前言
权限指的就是我们对于某件事物所能够相关操作,而对于不同对象该所能进行的操作是不同的,所以我们可以认为,权限是与对象和事物属性相关的,而我们就是通过这两点给大家充分的介绍一下Linux相关权限的介绍。
1.Linux操作系统下的两种用户
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。
普通用户直接使用 su ,该实际上只是将普通用户切换成超级用户,但是我们现在所处的家目录还是我们普通用户的,但是对于 su - ,这里进行的重新登入的方式切换超级用户,此时的家目录就变成了超级用户
对于普通用户切换普通用户,这里我们可以转换为超级用户,再使用su user,进行直接切换,或者直接su user然后输入对应用的密码即可。
这里给大家简单的演示一下,这里我们先进入一个普通用户:
Linux权限管理
Linux文件访问对象分类
这里就是小编说到的对象问题,那么我们Linux文件访问的对象一共分为三种:
文件和文件目录的所有者:u---User(中国平民 法律问题)
文件和文件目录的所有者所在的组的用户:g---Group(不多说)(组内协调,但不让其他用户可见)
其它用户:o---Others (外国人)
文件类型和访问权限
对于文件这个事物不同的用户有着对应不同的属性,而这个也就会在我们显示文件属性的时候给我们展现出来,这里我们用ls -l指令将一个文件对应不同对象的权限给大家展示一下
这里我们文件属性与上面对应的是一致的,这里大家可以进行查看理解一下。
文件类型
上面我们看到文件类型所对应展示是的文件属性的第一列位置,那么对于文件的类型我们这里不单单只有一种类型。
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
以上对应的文件,我们现在除了看到文件夹类型和普通文件这类型,还没有看见过其他类型文件,对于其他类型的文件,小编会在以后学习的过程中,不断给大家介绍,现在大家只需要知道,我们具有这些文件类型即可。
基本权限
i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除,增加,移动目录内文件的权限
iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“—”表示不具有该项权限
对于权限我们这里一共有两种表示方法:
一种是字符表示:
另外一种就是八进制数值进行表示:
文件访问权限的相关设置方法
chmod
chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod命令修改权限值得格式:
用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
由于我们的权限具有两种表示方式,那么我们的修改也具有两种方式:
第一种是我们上面的方式进行修改:
还有一种是直接使用我们的八进制进行权限修改:
chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
对于文件拥有者的修改我们这里只有root账户具有这个功能权限。那么接下来我给大家演示一下:
chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
对于文件所属组的修改,我们这里也是只有root账户具有这个权限。
umask掩码
我们这里可以发现,我们每次创建好文件和目录后,该访问权限都给我们已经设计好了,那么我们创建的文件的或者目录的默认权限是什么?
这里可以告诉大家是:
新建文件夹默认权限=0666
新建目录默认权限=0777
那么我们分别创建一个目录和文件,分别可以查看一下该的默认权限值是什么?
这里换算成八进制分别是:755 ,622
那为什么是这个样子的呢?这里就和我们的umask掩码有关
功能:
(权限掩码:凡是在unmask中出现的权限,不会在最终的文件权限中出现)
查看或修改文件掩码
这里造成这种结果的原因是:创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask(八进制转换为二进制,然后取反unmask最后按位与)。
(说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。)
那么我们这里看以超级用户的角度看一下我们默认的umask掩码是多少?
那么该进行权限干涉后,运算后得到的目录和我们的普通文件的权限是否和我们上面的一致呢?这里小编给大家演示一下:
对于umask掩码值我们也可以进行直接修改,达到创建文件时得到不同的权限结果:
目录权限
目录的权限和我们普通文件所达到的效果不太一致,上面虽然我们已经简单的对其进行了提及,但是这里我们仍然需要着重介绍。
对于一个目录,该读,写,执行权限分别对应的行为是:
1.对于一个目录的读权限该实际上决定的是否展现该目录下的东西
2.对于一个目录的写权限决定的是否允许在当前目录下进行创建,更改,删除
3.对于一个目录的执行权限决定的是是否让用户进入对应目录
(这里就不加以演示,大家可以通过我们上面所介绍的权限修改操作符进行修改,然后执行相关操作查看我们的目录是否可以执行相关功能(给大家一个小考验))
这里我们介绍目录权限,主要还有一个原因,这里大家请听我细细道来:
a.对于我们家目录的权限是:700,因此我们在我们家目录创建的文件,别人都看不到!
b.有时候,我们多个用户想进行文件数据的共享,那么我们所创建的共享文件,不能再任何一个人的家目录下。但是这里有一个问题就是一个文件能否被删除,并不由这个文件本身决定,由这个文件所处的目录决定(因此就会出现一个问题是,我们创建的文件会被别人删除)这里如果我们去掉共享目录的写权限,虽然别人无法更改我们的目录,但是,我们同时也无法创建文件了,所以下面我们引入粘置位来解决此类问题。
粘滞位
给目录设置,一般是共享目录,大家可以进行在目录进行各自文件的增删改查,只允许文件拥有者,或者root能删除这个文件,其他人一概不允许,t是一种特殊的x权限。
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除