一、权限的概念
二、Linux权限管理
1. 文件访问者的分类(人)
文件和文件目录的所有者,拥有者:u---User文件和文件目录的所有者所在的组的用户,所属组:g---Group其它用户:o---Others
为什么会存在所属组呢?
在公司如果你的领导想要查看你的成果,那么如果没有所属组的话,你就需要放开其他用户的权限,那么所有人都可以看到了,这样是很明显不合理的。
2. 文件类型和访问权限(事物属性)
a) 文件类型
d:文件夹-:普通文件 (源文件、库文件、可执行文件、文档压缩包等)l:软链接(类似Windows的快捷方式)b:块设备文件(例如硬盘、光驱等)p:管道文件c:字符设备文件(例如屏幕等串口设备)s:套接口文件
其中的第一个字母就代表了文件的类型。
b)基本权限
i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限iv.“—”表示不具有该项权限
这里就可以看到,前三个是拥有者的权限,中间三个是所属组的权限,后面三个是其他用户的权限。
另外,root用户不受权限的约束。
3. 文件权限值的表示方法
a)字符表示方法
b)8进制数值表示方法
4. 文件访问权限的相关设置方法
a)chmod
R -> 递归修改目录文件的权限说明:只有文件的拥有者和root才可以改变文件的权限chmod
+:向权限范围增加权限代号所表示的权限-:向权限范围取消权限代号所表示的权限=:向权限范围赋予权限代号所表示的权限用户符号:u:拥有者g:拥有者同组用o:其它用户a:所有用户
比如我们需要给拥有者(u)去掉上 w 的权限。输入:chmod u-w test2.txt
这里就看到就已经没有了 w 的权限。如果想要去掉几个权限,字母是可以一起输入的,比如:chmod u-rwx test2.txt
如果想要同时去掉拥有者和所属组的权限,输入:chmod u-rwx,g-rwg test2.txt
同样的,如果想要加上权限,只需要把 - 号改成 + 号即可。
如果想要给所有人加减权限,输入:chmod a-rwx test2.txt
我们修改权限的时候,还可以按照数值来修改。
例如,我们输入:chmod 666 test2.txt
b)chown
c)chgrp
除了拥有者和所属组,都是其他人,所以不需要修改其他人的命令!
d)umask
权限掩码:凡是在umask中出现的权限,都必须在起始权限中去掉。
例如普通用户的0002,2就是 w 权限,所以 others 组中的 w 权限就被去掉了。
我们可以看到因为umask是0002的缘故,所以others是没有写的权限的。这就是掩码值的作用。
单独输入 umask 则获取到掩码值。
如果想要修改掩码值,只需要 umask 后接上想要修改的掩码值。
这时候创建的文件就是系统的默认权限了。
6. 目录的权限
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
当我们要进入一个目录的时候,我们需要什么权限? ---- x权限。
为什么系统要规定一个目录默认是777开始?因为所有的目录被创建出来,一般都要能够进入!
在目录中创建新文件,需要 w 权限,读取文件,需要 r 权限。
所以,只要有用目录的写权限,就可以删除目录中文件,不论有没有这个文件的写权限。
为了解决这个问题,Linux引入了粘滞位。
7. 粘滞位
Linux系统中有很多人的时候,我们需要在一个公共的目录下进行文件的操作。
一般公共的目录是由root来创建。
张三为什么不在李四的目录下操作呢?没有权限。
让一个公共目录,大家各自可以进行 rwx 操作,但是禁止大家互删对方的文件,我们需要给目录设置粘滞位。
那么我们怎么添加粘滞位呢?
格式:chmod +t [目录名]
一、超级管理员删除(root)二、该目录的所有者删除三、该文件的所有者删除
因为公共目录是root用户的,所以添加粘滞位也是需要root用户来添加的。
当然,root用户不受粘滞位的限制。所以,root用户的密码是非常重要的,不能轻易泄露。