Linux下的权限
- 用户分类
- 文件类型
-
- 基本权限
- root用户:
- 修改权限
-
- 对于文件,权限的意义
-
- 对于目录权限的意义
- 更改文件拥有者/所属组
-
- 粘滞位
-
- 默认权限
-
什么是权限?权限就是一件事情是否允许被特定的人做,权限约束的对象是人,而文件本身具有天然的权限属性(r(可读) w(可写) x(可运行))。
用户分类
Linux下分别有3类用户:
1、 拥有者:owner,文件和文件目录的所有者
2、 所属组:group,文件和文件目录的所有者所在组的用户
3、 其他用户:other 其他用户
这两个分别为拥有者和所属组。
文件类型
Linux与windows系统下标识文件类型的方式有一些区别,Windows系统下一般以后缀名作为区分文件类型的依据,而Linux环境下以ll显示的文件详细情况中开头第一个来标识文件类型,例如:
具体文件类型
那么Linux环境下又有哪些文件类型呢?
d:表示目录/文件夹
-:普通文件(文本,各种动静态库,可执行程序,源程序)
c:字符设备文件:键盘与显示器
b:块设备文件:磁盘
p:管道文件:通信
l:链接文件:软链接
基本权限
Linux下的权限每三个为一组,分别对应拥有者,所属组以及其他用户,例如:
其中:
r(是否具有读权限)
w(是否具有写权限)
x(是否具有执行权限)
-(代表没有该权限)
root用户:
在linux环境下有两类用户,root(超级用户)和普通用户,root用户的权限非常高,因此可以直接修改权限,哪怕该文件创建者不是root。
并且root即使没有可读可写权限依然可以访问修改文件,root用户几乎不受权限约束,权限是用来约束普通用户的。
但是,对于可执行权限而言,root用户仍然需要x权限才能运行文件,需要自己添加可执行权限才可以执行,这是为了安全考虑
修改权限
使用chmod命令来设置文件访问权限,可进行永久修改。
使用方法:
chmod u(拥有者)/g(所属组)/o(其他) +(-)权限 文件名,可以对拥有者/所属组/其他进行权限设置,也可以同时设置所有人的权限(a)。
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限 用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
通过8进制数字更改权限
由于读写执行权限位置是确定都是两态的(是否可读,是否可写,是否可执行),因此可以用二进制0/1来表示,由于权限是每三个为一组,可以使用8进制方案来表述权限,例如:
rw-r–r--可以表示为110100100用8进制表示为644,具体操作如下:
对于文件,权限的意义
读权限
对于文件,如果没有读权限,则不能进行文件的访问
写权限
文件如果没有写权限,无法对文件进行写入修改。
运行权限
没有运行权限无法运行,需要注意的是有些文件例如文本文件等,即使给他加上写权限也仍然无法运行,因为他本身并不具备可执行能力。
对于目录权限的意义
目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有x权限,但没有r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
目录读权限:没有读权限则无法查看目录内容,但是可以进入目录
目录写权限:在目录下创建文件
进入目录需要什么权限:需要x权限
只有读权限没有访问权限:无法访问文件内容
更改文件拥有者/所属组
chown
使用chown命令,可以改变拥有者,但是普通用户即使是创建者仍然不能直接改变拥有者,例如:
需要以root身份来设置拥有者,root用户可以直接改变拥有者
chgrp
chgrp命令与chown类似,普通用户不能直接修改所属组,需要进行权限提升,但是与chown区别在于 文件拥有者可以直接将自己文件的所属组更改回来不需要进行权限提升
一次性同时修改拥有者和所属组
粘滞位
使用方法
粘滞位:一般是限制other权限,只能对目录设置。
使用场景
如果目录对其他人(other用户)具有写权限,other可以删除该目录下的文件内容,如果目录本身对other没有写权限,other不可以删掉任何文件,但是如果既想要实现other可以在特定目录下创建文件并写入但是不让other用户删除该文件,于是可以使用粘滞位。
作用
对设置了粘滞位的目录,在该目录下,只能文件的拥有者或者root用户可以删除,其他人不能删除。例如,有多个人或者系统的临时数据,所有的临时文件放在tmp目录下 需要让所有人都能够访问tmp目录,需要将tmp目录权限全部放开,所以需要设置粘滞位,让每个人只能删除自己的文件。
默认权限
我们可以看到,每个文件被创建时,都有自己的默认权限,这种默认权限是怎么产生的呢?
权限掩码
这需要涉及到权限掩码这个概念,权限掩码是将在掩码中出现的位会在起始权限中去掉。
使用umask命令可以查看当前的权限掩码
普通文件的起始权限(666)
目录文件起始权限(777)
具体操作方式就是对掩码进行按位取反然后按位与上起始权限。
自定义默认权限
用户可以通过修改权限掩码的方式来修改文件的起始权限,通过这种方式修改的权限掩码仅在当前用户生效并且仅在本次登录生效,这也是系统为了安全考虑,使用默认的权限掩码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)