详细刨析Linux权限。包含权限的概念权限的修改粘滞位等等。
Posted Jiawen_captial
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详细刨析Linux权限。包含权限的概念权限的修改粘滞位等等。相关的知识,希望对你有一定的参考价值。
Linux权限管理
1、权限概念(谈谈我对权限的理解)
既然在这里要讲解权限的相关知识,那么我想先谈谈什么是权限,在Linux中我对于权限的认识是一件事情是否允许被特定的人做。这句话可能还是比较抽象,下面举一个例子:某视频网站,如果是普通用户大家不可以观看VIP影视,但是VIP用户则可以观看,这里的能否观看VIP影视就是一件事情是否可以被特定的人做,而那个特定的人指的就是VIP用户。
在Linux中关于权限的概念可以理解为不同的用户对事物属性的操作。在Linux中权限约束用户对文件操作时文件本身具有的天然的权限属性:r读权限、w写权限、x执行权限这些属性是否可以做。
2、认识Linux中的人(文件用户类别)和文件属性
用户类别:
- 拥有者:仅自己具有访问文件的权限。
- 所属组:仅自己和所在组具有访问的权限
- 其他:除拥有者和所属组外的其他成员就是其他。
用户类别与root和普通用户的关系
拥有者、所属组、其他指的是一种角色身份,root和普通用户指的是具体的一个人。
Linux中的文件属性
注意:在Linux下一切皆文件!!!这句话贯穿整个Linux的学习过程中,希望大家能够多多体会。
Linux系统中不以文件的后缀来区分文件的类型,他以列属性的第一个字符来区分,但是对于编译器他需要识别文件后缀,下面来看不同的字符所代表的不同的含义。
d:文件夹
-:普通文件(文本、动静态库等)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
3、文件权限值的表示方法
a、字符标识
- r-- 只读权限
- rw-读写权限
- rwx读写执行权限
- -w-只写权限
- -wx写执行权限
- –x只执行权限
- r-x读执行权限
- —无权限
b、进制标识
权限符号 | 二进制位 |
---|---|
r | 100 |
w | 010 |
x | 001 |
rw | 110 |
rx | 101 |
wx | 011 |
rwx | 111 |
—‘ | 000 |
c、Linux中用户权限的分配
Linux中在文件的属性列中,从左到右三三为一组分别标识拥有者的权限、所属组的权限和其他用户的权限,具体如下图所示。
4、权限的修改
1)使用chmod来修改权限
格式:chmod [参数] 权限 文件名
说明:只有文件的拥有者和root才可以改变文件的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
使用实例如下:
chmod g+x test.txt //test.txt的拥有者添加可执行权限
chmod g-rwx test.txt //test.txt的拥有者除去读写可执行权限
chmod a-rwx test.txt //test.txt的所有用户除去读写可执行权限
此外权限在系统中按照二进制的方式进行标识,有权限则对应的二进制位1,反之为0;例如rw-rw-rw-对应的二进制位为:110110110,所有也可以使用chmod配合二进制来修改权限。使用实例如下:
chmod 777 test.txt
chmod 666 test.txt
2)使用chown来修改拥有者
格式:chown [参数] 用户名 文件名
注意:在将文件给其他用户的时候,需要征得其他用户的允许。
chown user1 f1
3)使用chgrp来修改所属组
格式:chgrp [参数] 用户组名 文件名
4)使用umask来修改文件的默认权限
我们可以观察到在我们创建的文件中基于文件的类别有相同的权限,这是系统给普通文件的默认权限为666,目录文件的权限为777。
功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
**说明:**将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002
实例:
umask //查看文件掩码
umask 022 //设置文件掩码
5、粘滞位
先来看一种需求分析:在特定场景下其他用户可以在特定的目录下创建文件,并写入,但是不允许任何人删掉自己的文件,在这种情况下便衍生出来了粘滞位来解决相关的问题。
对目录设置粘滞位:
chmod o+t dir
**注意:**粘滞位只能对目录设置,一般是限制other的权限。对于设置了粘滞位的目录,在该目录下,只能文件的拥有者可以删除,其他人不能删除,root除外。
以上是关于详细刨析Linux权限。包含权限的概念权限的修改粘滞位等等。的主要内容,如果未能解决你的问题,请参考以下文章