Linux学习-umask详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习-umask详解相关的知识,希望对你有一定的参考价值。

umask --表示创建文件时的默认权限(即创建文件时不需要设置而天生的权限)




    例如:我们发现

         root用户下,touch a ,文件a的默认权限是644

         普通用户下,touch b ,文件b的默认权限是664 

          644和664我们并没有设置,其中的关键因素就是umask

    分析:


           目录             文件
 最高权限        777   rwxrwxrwx
          666   rw-rw-rw-

      命令umask可以查看当前用户的umask值   (查看umask只看后三位,总共是4位)


           root            普通用户
umask           022               002  


    结合上述的举例得知:

        默认权限=最高权限-umask( 644=666-022 // 664=666-002 )

   但是: 

         当umask为011,创建文件的默认权限应该是655,但是实际运行的时候默认权限是 666

         666 -> rw-rw-rw-

         011 -> -----x--x

       相减得:

         666 <- rw-rw-rw-

  (这个特殊情况仅出现在文件,因为文件[二进制文件除外]没有x执行权限)

  所以,查看文件的umask时我们要特别注意是否有奇数位(x表示1)


    umask + 数值 修改当前用户的umask 如:umask 044

       不过这样设置的umask会在用户重新登录的时候恢复原来的值,我们可以把修改的umask保存在~/.bashrc

***************************

    vim ~/.bashrc

    在文件末尾添加umask 044

    保存退出 

    重新登录用户则保存成功

***************************



案例:

    刘关张三兄弟都属于shu这个附加用户组,有一个共享目录,叫shuguo,三兄弟在shuguo下所创建的文件,相互之间可以修改.其他人无任何权限,三兄弟创建的文件,只能自己删除.(利用umask值默认设置权限)

    groupadd shu

    useradd -G shu liubei

    useradd -G shu guanyu

    useradd -G shu zhangfei

    mkdir shuguo 

    chgrp shu shuguo/    /*shuguo目录所属组改成shu*/ 

    chmod g+s shuguo/    /*使刘关张创建的文件属于shu*/

    chmod o+t shuguo/    /*使刘关张创建的文件只能自己删除*/

    chmod g+w shuguo/    /*使刘关张可以修改和执行shuguo下的文件*/

    umask 006


以上是关于Linux学习-umask详解的主要内容,如果未能解决你的问题,请参考以下文章

linux下umask详解

Linux学习-chattr和umask

2016-2-3 linux基础学习9

linux umask使用详解

Linux第二周学习笔记(10)

linux命令学习系列11-umask,file,find