Linux umask 新建文件或目录默认权限设置命令.

umask是用来决定系统中的新建文件或目录的初始默认权限的,root用户的umask默认值是"0022"普通用户的umask默认值是"0002",那么如何的值默认权限的值呢?直接在系统中输入"umask"命令即可,如图1所示。速

图片关键词

图1 查看系统中umask初始默认值


这里使用"root"用户来举例,如图1知道了"root"用户umask初始默认值为"0022"那么它新建文件或目录的初始默认全是是多少呢?如图2所示。

图片关键词

图2 root用户umask初始默认值为"0022"时,新建文件默认权限为"644",新建目录默认权限为"755"

那么是如何得知新建文件或目录的默认权限值呢?其计算方法为:

文件使用"666"的权限值减去"umask"初始默认值"0022"

目录使用"777"的权限值减去"umask"初始默认值"0022"

但这不能直接使用权限值来相减,需要转换为字母形式的权限来相减。需要注意的是umask的默认权限值转换为字母形式时只需后三位数来转换,所以umask默认权限值是"022".

666=(rw- rw- rw-)

777=(rwx rwx rwx)

022=(--- -w- -w-)

新建文件初始默认权限值计算方法:

    666=(rw- rw- rw-)减去022=(--- -w- -w-)等于(rw- r-- r--)=644

新建目录初始默认权限值计算方法:

    777=(rwx rwx rwx)减去022=(--- -w- -w-)等于(rwx r-x r-x)=755


那么要是把umask初始默认值更改为"0003"后,新建的文件或目录的初始默认权限值又是多少呢?我们可以根据以上讲的返方法来计算的得出文件或目录的初始默认权限值是多少。

       umask默认值:

            003=(--- --- -wx)

        

      文件计算:

            666=(rw- rw- rw-)减去003=(--- --- -wx)等于(rw- rw- r--)=664

      目录计算:

            777=(rwx rwx rwx)减去003=(--- --- -wx)等于(rwx rwx r--)=774


在系统中操作一番验证一下,如图3所示。

图片关键词

图3 更改umask默认值后新建的文件或目录的初始默认权限值也随之改变


如图3,直接使用"umask 003"的方法修改umask默认值是临时生效的,一旦重启或重新登陆系统,就会失效。如果想让修改永久生效,则需要修改对应的环境变量配置文件 /etc/profile。如图4所示。

图片关键词

图4 profile 配置永久生效的umask默认值


如图4只需把内容中的002修改即可修改普通用户的umask值,更改022的值即可更改root用户的umask默认值。