目录
1.认识权限
什么是权限呢?
权限是指为了保证职责的有效履行,任职者必须具备的,对某事项进行决策的范围和程度。
即我可以做什么和不能做什么。
在Linux下,文件权限与文件属性和身份(所分角色)是息息相关的。
2.文件访问者的身份
在Linux中,当我们访问任何文件,都有自己对于这个文件的身份,身份一共分为四种:
1.拥有者,即文件的所有者,用户表示符为 ‘ u ’
2.同组者,与文件拥有者在同一组的用户,用户表示符为 ’ g '
3.其他用户,不是以上两种身份的用户 , 用户表示符为 ‘o '
4.所有用户,字面理解,就是全部用户 ,用户表示符为 ’ a '
3.文件属性
文件属性主要分为三种:
1. r : 可读
2. w : 可写
3. x :可执行
4. - :对应的权限位置,没有权限
4.查看文件权限以及属性
通过 ls -l 的操作我们可以查看文件的权限以及文件的属性
如下,我们创建一个 code .c 的文件并且 ls -l 可以得到如下情况:
接下来我们细分所有字符的含义:
在文件权限这一栏,我们三三分为一组,分别是 拥有者 ,所属组 ,其他人 对于此文件拥有的权限, 并且 排序一定为 rwx ,如果没有的权限用 - 占位
那么对于 code .c 这一文件 ,
拥有者的权限为 : rw- ,即可读可写不可执行
所属组的权限为 : rw- ,也是可读可写不可执行
拥有者的权限为 : r- - ,即可读不可写不可执行
5.以八进制表示文件权限
在文件权限表示时 ,rwx 的位置是固定的,以二进制表示时,当存在这个位置的权限为 1,否则为 0,因此,各种权限的值为:
由此我们可以以八进制表示文件的权限,如
的八进制权限值为 664
6.更改文件权限
首先,我们要认识到,只有文件拥有者或者root超级用户才可以修改文件的权限
1.chmod修改权限
格式如下:
chmod 权限修改 文件名
权限修改部分为 : 用户表示符 (+ / - / =) 权限字符
实例如下:
chmod还有一种方法可以修改文件权限,即以八进制修改文件权限
并且可以一次性修改拥有者, 所属组 ,其他人三者的权限
格式如下:
chmod XXX 文件名
通过上面的学习,我们知道三个X是一个八进制数,分别代表 拥有者, 所属组 ,其他人的权限。
修改实例
2.修改文件的拥有者
格式:
chown username filename
将名字为 filename 的文件拥有者改为 username用户
3.修改文件的所属组
格式:
chgrp groupname filename
将名字为 filename 的文件所属组改为 groupname 用户
7.权限掩码
1.权限掩码的作用:
在权限掩码 umask 中存在的权限,不会出现在最终文件权限中出现
普通文件的初始权限值为 666
目录文件的初始权限值为 777
但是在我们查询目录文件和普通文件 的文件权限值为 776 和 665
这是由于,umask 的值为 :
分别改为对应的 权限值为 000 000 010 ( --- --- -w- )
普通文件的初始权限值为 666 即 110 110 110 ( rw- rw- rw- )
目录文件的初始权限值为 777 即 111 111 111 ( rwx rwx rwx )
根据 umask 权限掩码的定义:在权限掩码 umask 中存在的权限,不会出现在最终文件权限中出现
最终普通文件的权限值为 110 110 100 ( rw- rw- r-- )即为 664
最终目录文件的权限值为 111 111 101 ( rwx rwx r-x )即为 775
以上就是权限掩码的作用。
2.查看umask权限值
格式:
umask
实例:
3.设置umask权限值
格式:
umask XXX
将umask值修改为XXX
实例:
8.粘滞位
一个文件是否能够被删除,与其本身无关,而是跟其身处的目录文件有关
当用户具有此目录文件的权限时,可以进行如下操作
1. r 权限 :是否允许查看目录文件内容
2. w权限 :是否允许对目录下的文件进行创建,更改,删除
3. x权限:是否可以 cd 到目录中
当我们拥有这个目录的w权限时,就可以删除其下的所有文件,无疑这是不合理的,
也因此有了粘滞位的概念
设置粘滞位
格式:
chmod +t 目录文件名
通过这种操作,可以给目录加上粘滞位,设置了粘滞位的目录文件下的文件有以下特性:
1.root 允许删除
2.文件拥有者允许删除
3.目录所有者允许删除