linux中修改用户创建文件时的缺省权限——umask

一、umask是什么?

  1. linux系统中,用户登录到系统中后,创建一个文件的时候,这个文件有一个默认的权限,该默认权限在linux中由umask这个命令来管理。
  2. 直接使用umask命令可以查看并修改当前shell中用户创建文件的缺省权限。即修改完后关闭该shell再重新开启shell会发现上次修改未起作用,这主要是由于还有一个系统默认的umask的设置,一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。
  3. umask的值实际上可以参考chmod的时候文件权限的数字值,但是umask是要“拿走”相应的位而已:

    (1)文件的rwx权限对应的数字分别是4、2、1.
    (2)如果umask的值是0002,第一个0与特殊权限有关,暂时忽略,后边的002,每一位的含义分别讨论当前用户(u),当前所在的组(g),其他用户(o)等的权限,u的权限减去0为权限不变(rw-),g的权限减去0为权限不变(rw-),o的权限减去2为减去w权限(r--).

二、umask在业务中有什么用?

  1. 通常在程序中使用umask命令,比如php中有函数umask(0002),可以在当前程序中设置默认的创建文件的权限为rw-rw-r–,但是该程序结束后就会直接恢复原来的umask的值。
  2. 实际上umask就是为了设置默认的创建文件的权限,使用chmod也能实现相同的业务功能,所以,umask的关键词就是“默认权限”。
    原文作者:繁星落眼眶
    原文地址: https://segmentfault.com/a/1190000018477908
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞