Linux中的权限
Linux权限是什么呢?在生活中有很多事情跟权限有关,有些东西你没有使用权力,但是别人可以有,这就是权限,别人可以做你做不了的事情。在LInux中用户分为两类,一类是超级用户也就是root用户,还有一类是普通用户。root用户在LInux中基本上没有什么限制,可以说畅通无阻。
目录
Linux用户切换
Linux权限管理
文件类型和访问属性
文件权限值
编辑 文件访问权限修改
chmod指令
chown指令
chgrp指令
umask指令
编辑 file指令
粘滞位
Linux用户切换
命令:su [用户名]
功能:切换用户。
示例:root用户切换普通用户
从上面的图片可以看出我们从root用户转换成普通用户了,并且不需要密码。
示例:普通用户切换root用户
当我们从普通用户切换root用户时是需要root账号的密码的。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。普通用户可以提权来进行root用户才能进行的操作,但是并不是所以的普通用户都可以进行提权操作,只有在系统的白名单中也就是root用户信任的用户才能进行该操作。
Linux权限管理
在LInux中分为这三类人:使用者,所属组的人,其他人。
文件和文件目录的所有者:u---User(中国平民 法律问题)
文件和文件目录的所有者所在的组的用户:g---Group(不多说)
其它用户:o---Others (外国人)
文件类型和访问属性
在创建一个目录或者文件后,通过ll指令来查看目录或者文件信息
示例;
当我们用ll指令来查看目录或者文件信息时,第一位就是文件的类型,以d开头的是目录类型,-开头的是普通文件。当然还有多种类型文件就不一一列举。而在文件类型后面还有九个字符,三个三个为一组,第一组是拥有者对该目录或者文件的权限,第二组为所属组对该目录或者文件的权限,第三组为其他人(既不是拥有者也不是所属组的便是其他人)对该目录或者文件的权限。
r是读权限,w是写权限,x是可执行权限,没有该权限就为-。在目录中x是可进入权限,w是可以在目录中创建文件或者删除文件,r是可以在浏览目录中的文件。
文件权限值
字符表示:
进制数值表示:
文件访问权限修改
一个目录或者文件只有拥有者或者root用户才能需要访问权限,其他人是不能进行修改的,root用户因为在Linux中没有权限限制,所以对任何目录或者文件都可以修改。
chmod指令
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限chmod命令权限的格式
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
示例:
在公共tmp目录下创建一个file1.txt文件,所以用户都可以看到里面的内容,从第一张图可以看到该文件拥有者是Lrh,所属组也是Lrh,其他人只有浏览的权利。如果hxq进行写入内容会怎么样呢?
从这里可以看出hxq写入hello被拒绝了,那么root用户呢?
从这里可以看出root用户的权限没有限制,说好的其他人只能浏览不能写入内容,但是和root用户没有关系。当然root用户也可以更改该文件的访问权限。
root用户更改文件权限,所有人都不可以访问该文件,但是和root用户没有关系。
对于权限认证,先与拥有者先匹配,如果匹配成功就不会再进行下一次匹配,反之与所属组进行匹配,如果成功就匹配就有所属组的权限,反之只有其他人的访问权限。
chown指令
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
示例:
hxq就是file1.txt的拥有者了。
chgrp指令
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
示例:
umask指令
功能:查看或修改文件掩码
新建文件夹默认权限为0666
新建目录默认权限为0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask。
修改umask格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
file指令
功能说明:辨识文件类型。
语法:file [选项] 文件或目录...
常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容
示例:
粘滞位
当前在tmp目录下也就是共享目录,所有用户都可以在该目录下创建删除文件,那么如果你自己创建的文件被别人恶意删除,那是不是很烦,而一个键就可以解决这个问题:粘滞位 -t。
一个文件能否被删除并不是跟文件本身有关,而是该文件所处的目录下有关,增加粘滞位可以防止文件被别人恶意删除。用法:chmod o+t 目录
可以看到在Linux系统下自带的tmp目录其他人的权限中带有-t,在该目录下不可以删除不属于自己的文件,只能root用户和文件拥有者能删。
目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。