1. 权限概念
Linux下有两种用户:超级用户(ROOT),普通用户。
超级用户:可以Linux下的系统做任何事情,不受限制。
普通用户:只能做有限的事情。
su
从root 转到xtr
语法:su xty
切换用户
2.权限管理
在研究权限管理之前,我们需要首先弄明白权限是相对于人和文件的。
相对于人:
文件和文件目录的所有者: u – User
文件和文件目录的的所有者所在的组的用户:g – Group
其他人: o – other
相对于文件:
r:读权限。对于文件来说,具有读取文件内容的权限;对于目录来说:具有浏览该目录的权限。
w:写权限。对于文件来说,具有修改文件内容的权限;对于目录来说:具有删除移动目录内文件的权限。
x:执行权限。对于文件来说,具有执行文件的权限;对于目录来说:具有进入目录的权限
- 表示不具有该权限。
第一个xty是文件的所属用户;第二个xty时文件的所属组。
第一个红框框的“d”代表文件类型,如下:
2.1 权限设置方法
2.1.1 chmod(change mode)
修改文件的权限。只有root和文件的拥有者才可以改变文件的权限。
格式:chmod [参数] 权限 文件名
常用选项:-R 递归修改目录文件的权限,包括文件里面的文件。
如下图递归的修改x1目录及该目录下的权限:
权限处的格式:
增加拥有者的权限:chmod u+wx text.txt
减少所属组的权限:chmod g-wx text.txt
为所有组增加权限:chmod a+xwr text.txt
为拥有者和所属组同时增加权限: chmod u+x,g+r text.txt
给所有组赋值x权限:chmod a=x text.txt
使用三位八进制数来表示:
一共有三个组,每个组分别有三个权限,分别代表八进制数。
相当于赋值的格式
- 为三个组增加所有权限: chmod 777 text.txt
- 拥有者和其他用户仅有写权限:chmod 272 text.txt
chown
修改文件的拥有者。仅仅在root下使用。
语法:chown [参数-R] 拥有者名字 文件名
chgrp
修改文件或者目录的所属组。仅仅在root下使用。
语法:chgrp [参数-R] 拥有者名字 文件名
umask
用来查看或者修改文件的掩码。
- 新建文件夹的默认权限为0666
新建目录的默认权限为0777
为什么我们新建的文件不是这个权限呢?
因为新建时的最终权限受到umask的影响。
最终权限=起始权限 &(~umask):最终的结果为umask的那个选项为1,那个选项就被屏蔽。
语法:umask 查看系统掩码
umask 0777 把掩码修改为0777
3.目录的权限
- 如果没有x权限,则不能cd到目录中。
- 如果没有r权限,无法用ls等命令查看目录文件中的内容。
- 如果没有w权限,无法再目录中创建和删除权限。
如果ljj在xty的目录中,创建了一个x1的文件,xty查看不了,但是能删除掉x1文件,很显然是不科学的!
因此引入粘滞位的概念:
粘滞位
防止上面这种情况
语法: chmod +t 目录名
为该文件名加上粘滞位
该文件只能被以下情况删除:
- root 能删除
- 该文件的所有者能删除
**key:**粘滞位只能加在目录上,一般是谁设置的,谁才能取消(root随意)。
如果我们在别人的目录下创建文件,只要该目录有粘滞位,就再也把不用怕别人给删除啦!
权限总结
- 目录的可执行权限是表示你可否在目录下执行命令。
- 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目,即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
- 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
- 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档.