美文网首页
权限掩码

权限掩码

作者: 云三木 | 来源:发表于2020-08-26 16:33 被阅读0次

文件rwx权限

在了解权限掩码之前先了解下权限的基本知识
r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

r、w、x分别是4、2、1。 
7代表所有权限
6代表读写
5代表读执行
4代表只读
3代表写执行
2代表只写
1代表只执行

下图中第一个文件权限有一个d,d表示当前是一个文件夹


权限掩码

我们都知道在linux下创建一个文件或者目录之后是可以通过chmod等命令进行权限设置,来达到给当前用户、用户组用户以及其他用户分配不同的访问权限。那么,我们新创建的目录和文件本身也是有它的默认权限的,这个默认权限是什么,就是由权限掩码umask所确定的。它的功能可以说与chmod刚好相反的,代表默认拿走的也就是说不要的权限。

计算方式

    如果用户创建的是目录,则默认所有权限都开放,为777,默认为:drwxrwxrwx

    如果创建的是文件,默认没有x权限,那么就只有r、w两项,最大值为666,默认为:-rw-rw-rw-
    
    那么之前所说的拿走的权限就是这里这个默认值要减掉的权限,r、w、x分别是4、2、1,要拿掉读权限就输入4,拿掉写权限就输入2,以此类推。


    新建文件:666-022=644;
    新建目录:777-022=755.

    对于目录,直接使用777-umask即可,就得到了最终结果。
    对于文件,先使用666-umask。
        如果对应位上为偶数:最终权限就是这个偶数值。
        如果上面的对应为上有奇数,就对应位+1。
    上面的这个方法计算是非常方便的, 为何得到奇数要+1呢。

    文件的最大权限是666,都是偶数,你得到奇数,说明你的umask有奇数啊,读为4,写为2,都是偶数,说明你有执行权限的。

    就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行,
    其实应该是读写权限减去写权限的得到读权限的,相当于我们多减去了一个执行权限。所以结果加1。

linux查看权限掩码命令

umask       数字形态的权限设置分数
umask -S    符号类型的方式来显示出权限

[root@root ~]# umask
0022
[root@root ~]# umask -S
u=rwx,g=rx,o=rx
[root@root ~]#

0022
第一个0表示是文件或目录的特殊权限
第二个0表示文件或目录的拥有者有所有的rwx权限
第三个2表示文件或目录的所属组被拿走了w权限,及所属组的权限是r-x
第四个2表示文件或目录的其他人被拿走了w权限,及其他人的权限是r-x

新建目录的默认权限是:rwxr-xr-x
新建文件的默认权限是:rw-r–r--(Linux中文件默认都会拿走x权限)

临时修改默认权限

[root@root ~]# umask 0000
[root@root ~]# umask
0000

永久修改默认权限

编辑文件/etc/bashrc
在当前的shell环境中生效
1、如果用su - user1 来切换用户,表示换了shell环境,该配置文件不会生效
2、如果用su user1 来切换用户,表示没有换shell环境,该配置文件会生效

-代表切换用户会把环境变量中的配置文件全替换成新用户

编辑文件/etc/profile
可以在整个系统中生效

[root@root ~]# vim /etc/bashrc
[root@root ~]# vim /etc/profile

两个文件的内容是一样的
搜索umask,找到如下代码,不算第一位的特殊权限

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
  umask 002   //表示uid大于等于199的默认umask值,表示普通用户
else
 umask 022    //表示uid小于199的默认umask值,表示root
fi

修改后需要重新读取一下/etc/bashrc或/etc/profile
[root@root ~]# source /etc/profile
[root@root ~]# source /etc/bashrc

相关文章

  • 权限掩码

    文件rwx权限 在了解权限掩码之前先了解下权限的基本知识r(Read,读取):对文件而言,具有读取文件内容的权限;...

  • linux命令行学习(28):掩码命令umask

    我们在创建文件时,系统会给它默认的权限。掩码是用来控制这个默认权限的。当我们改变掩码时,会影响创建文件时的默认权限...

  • linux知识点系列之 umask

    介绍 umask(user's mask)用来设置文件权限掩码。权限掩码是由3个八进制的数字所组成,将现有的存取权...

  • Linux特殊权限day12

    1.特殊权限(suid\sgid\sbit)2.权限属性(chatter)3.进程掩码(umask) 一、特殊权限...

  • umask

    umask命令用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系...

  • umask 查看掩码

    umask 查看当前用户的掩码权限 假如掩码为 0022 就用0777减去0022 就是创建的文件夹的权...

  • linux基础3(属主属组权限管理)

    chmod:修改权限 chown:写改属主,属组 umask:改创建文件时的默认权限,权限掩码 set位: ...

  • umask

    文件的权限反向掩码,也叫遮罩码 普通创建文件,为了保证最小权限,创出来的权限只有user有rw其他只有r权限权限的...

  • Linux命令之文件管理 (四十一)

    Linux umask命令 Linux umask命令指定在建立文件时预设的权限掩码。 umask可用来设定[权限...

  • linux命令之--umask

    umask:反掩码或者默认权限 系统中默认的权限: 文件: 644 也就是说文件默认式没有执行权限的, 即使设...

网友评论

      本文标题:权限掩码

      本文链接:https://www.haomeiwen.com/subject/mpqpjktx.html