Linux权限
说明
权限符号
r: 读权限
w: 写权限
x: 执行权限
特殊权限:s 和 t
s权限:强制位。
t权限:粘贴位。让普通用户可以cp,不可以mv、rm。t权限有效的前提是普通用户有x权限
用户符号
u:拥有者
g:拥有者同组
o:其他用户
a: 所有用户
权限说明
r、w、x 对应位为1,表示拥有该权限
同时,可以把rwx三位组成的二进制数写成10进制
修改权限
chmod
chmod [参数] 权限 文件名
常用选项: R, 递归修改目录文件的权限
chown 修改文件拥有者
chown [参数] 用户名 文件名
chgrp 修改文件或目录所属的组
chgrp [参数] 用户组名 文件名
常用选项: R, 递归修改目录文件的所属组
umask 查看或修改文件掩码
查看掩码(查看默认权限)
umask
单独的一个umask就可以查看。
可以看到,当创建了文件try之后它的默认权限是-rw-r–r–,而掩码的值为0022。这其中有什么联系呢?
我们先来看一看掩码值的含义:
这是什么意思呢? 很简单——掩码,就是掩盖住权限的码。当掩码值对应的二进制位为1时,新建的文件无相应的权限。在上个例子中,我们创建了名为try的文件,掩码为0022,写成二进制就是000 000 010 010。我们将try的权限和二进制序列对比一下:
- rw- r-- r--
000 000 010 010
第一个:000对应的“-”,表示这是一个普通文件
第二个:000对应rw-,表示该文件的所有者对此文件有r和w权限
第三个:010对应r–,表示与该文件所有者同组的用户对此文件有r权限
第四个:010对应r–,表示其它用户对此文件有r权限
实际上没有的权限是被掩码对应为1的二进制屏蔽了,010屏蔽了w权限,所以同组用户和其它用户没有对该文件的w权限。
那么问题来了,明明x权限对应的位置是0,为什么所有用户都没有对文件的x权限呢?
原因在于:缺省创建的文件没有可执行权限。
我们可以用chmod命令设置,使文件有运行的权限。
修改掩码
格式:
umask mode
例子:
umask 007
结果:
运行umask命令只对当前shell环境起作用