您的位置:首页 > 运维架构 > Linux

Linux中umask的使用方法

2017-06-09 22:26 246 查看
  在Linux下新建文件和目录的时候,不用我们去手动设置权限,就会有一个默认的权限。这个默认权限就是根据其本身最大权限和umask计算而来的。

  创建文件默认最大权限为666 (-rw-rw-rw-),默认创建的文件没有可执行权限x位。

  创建目录默认最大权限为777(-rwxrwxrwx),默认创建的目录有x权限,允许用户进入。

  

  那什么是umask呢?

  umask就是配合最大权限计算出默认权限的东西。

  直接输入umask可以查询操作系统的umask值,默认的一般是0022。我的是0002。

  这个umask也可以根据需要自己设置的。命令也很简单,比如 umask 0003。

  


  主要看后三位022,w对应的是2,这就意味着文件的默认权限就是- rw- r- -r- - (644)。可见就是文件的最大权限里面去掉w权限,因为所有者user对应的数字是0,所以user权限不变。

  同理,目录的默认权限也是最大权限去掉022,也就是drwx r-x r-x (755) 。

Why?设置umask为0004与0005时,创建的文件默认权限都是一样的

设置umask为0004的情况:



  由umask的含义知拿掉4(666拿掉004),即拿掉了others的r权限(4),所以创建的0004file文件中others的权限即为-w-,也就是2了。

  

设置umask为0005的情况:



  由umask的含义知拿掉5(666拿掉005),即拿掉了others的r权限(4)和x权限(1),但是默认创建的文件没有可执行权限x位,这时候就忽略x。所以创建的0005file文件中others的权限即为-w-,也就是2了。

  

结论

  对于文件来说,如果umask没有去掉x权限,则系统自动处理掉x权限;

  对于文件来说,如果umask有去掉x权限,则系统按正常情况去掉相应权限;

  对于目录来说,则不存在这样的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux