umask (8进制数值)

  • umask的值决定了用户创建的文件和目录的默认权限
  • umask的值是和用户相关的
  • root用户默认的umask值是 0022
  • 普通用户的默认的umask的值是 0002
[root@centos6 ~]#umask
0022
[root@centos6 ~]#su - ming
[ming@centos6 ~]$umask
0002

默认权限 (8进制数值)

  • 文件的默认权限最大是 666
  • 目录的最大权限最大是 777

文件或目录的默认权限的计算(原理)

最终的表现为

文件的默认权限 + umask = 666 (注意是按位相加)
目录的默认权限 + umask = 777 (注意是按位相加)

核心计算方法

  • 对于文件

示例1 计算默认权限

666        # <-- 最大权限的八进制数值
145        # <-- umask 的八进制数值转换为二进制数值
110 110 110 # <-- 最大权限666的二进制值
001 100 101 # <-- umask 145 的二进制值,0 表示不关心;1 表示从最大权限中要去掉对应的权限(1变成0,0不变)
110 010 010 # <-- 计算的最终权限default的二进制值
6   2   2   # <-- 计算的最终权限default的八进制值

示例1 默认权限验证

[ming@centos6 ~]$umask 145
[ming@centos6 ~]$touch testfile
[ming@centos6 ~]$ll testfile
-rw--w--w-. 1 ming ming 0 Nov 22 19:30 testfile
[ming@centos6 ~]$stat testfile File: `testfile'Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 524419      Links: 1
Access: (0622/-rw--w--w-)  Uid: (  500/    ming)   Gid: (  500/    ming)
Access: 2018-11-22 19:30:24.580931076 +0800
Modify: 2018-11-22 19:30:24.580931076 +0800
Change: 2018-11-22 19:30:24.580931076 +0800
[ming@centos6 ~]$

示例2 计算默认权限

666        # <-- 最大权限的八进制数值
257        # <-- umask 的八进制数值110 110 110  # <-- 最大权限666的二进制值
010 101 111  # <-- umask 257 的二进制值,0 表示不关心;1 表示从最大权限中要去掉对应的权限(1变成0,0不变)
100 010 000  # <-- 计算的最终权限default的二进制值
4   2   0    # <-- 计算的最终权限default的八进制值

示例2 默认权限验证

[ming@centos6 ~]$umask 257
[ming@centos6 ~]$touch f5
[ming@centos6 ~]$stat f5File: `f5'Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 524420      Links: 1
Access: (0420/-r---w----)  Uid: (  500/    ming)   Gid: (  500/    ming)
Access: 2018-11-22 19:36:06.052894381 +0800
Modify: 2018-11-22 19:36:06.052894381 +0800
Change: 2018-11-22 19:36:06.052894381 +0800
[ming@centos6 ~]$ll f5
-r---w----. 1 ming ming 0 Nov 22 19:36 f5
[ming@centos6 ~]$
  • 对于目录

计算默认权限

777        # <-- 最大权限777的八进制值
345        # <-- umask 的八进制值转换为二进制数值
111 111 111 # <-- 最大权限777的二进制值
011 100 101 # <-- umask 345 的二进制值,0 表示不关心;1 表示从最大权限中要去掉对应的权限(1变成0,0不变)
100 011 010 # <-- 计算的最终权限default的二进制值
4   3   2   # <-- 计算的最终权限default的八进制值

默认权限验证

[ming@centos6 ~]$umask 345
[ming@centos6 ~]$umask
0345
[ming@centos6 ~]$mkdir test_dir1
[ming@centos6 ~]$ls -ld test_dir1/
dr---wx-w-. 2 ming ming 4096 Nov 22 19:42 test_dir1/
[ming@centos6 ~]$stat test_dir1/  File: `test_dir1/'Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d      Inode: 524421      Links: 2
Access: (0432/dr---wx-w-)  Uid: (  500/    ming)   Gid: (  500/    ming)
Access: 2018-11-22 19:42:45.437920151 +0800
Modify: 2018-11-22 19:42:45.437920151 +0800
Change: 2018-11-22 19:42:45.437920151 +0800
[ming@centos6 ~]$

简单的计算方法

  • 对目录
default=777-umask   (注意是按位相减)
  • 对文件
default=666-umask   (注意是按位相减)
观察结果
有偶数:最终结果就是 default
有奇数:最结结果加 1 就是 default

配置 umask 值

上面通过 umask 命令设置 umask 的值是暂时的,用户重新登陆后就会还原为系统的默认值

我们可以通过配置文件的方式来实现永久生效

  • 全局设置:/etc/bashrc
  • 用户设置:~/.bashrc

相关命令介绍

  • umask -S 模式方式显示
  • umask -p 输出可被调用
[ming@centos6 ~]$umask -S
u=r,g=wx,o=w
[ming@centos6 ~]$umask -p
umask 0345
[ming@centos6 ~]$umask -p >> ~/.bashrc 

设置默认权限的两中方式

  • 方法1 通过设置 umask的方式
umask 0022
  • 方法1 直接设置默认权限
umask u=r,g=wx,o=w

本文链接:https://www.cnblogs.com/shichangming/p/10007697.html

转载于:https://www.cnblogs.com/shichangming/p/10007697.html

umask 和 新建文件、目录的默认权限相关推荐

  1. Linux里新建文件/目录的默认权限

    Linux里新建文件/目录的默认权限 新建文件默认权限为666,新建目录默认权限为777. 但是要"减去" umask的值,umask的值可以使用umask命令看到,一般情况下,r ...

  2. linux 权限管理命令chown、chgrp、umask、linux新建文件或目录的默认权限755

    chown /bin/chown chown [用户] [文件或目录] 改变文件或目录的所有者 只有root可以改变文件或目录的所有者 root用户: mkdir /tmp touch /tmp/te ...

  3. Linux 删除权限 umask,linux中的umask控制文件或目录的默认权限

    umask命令可以控制着创建文件或目录时指定给文件或目录的默认权限.它使用八进制表示法表示从文件模式属性中删除一个位掩码.使用不带任何参数的umask命令,查看当前掩码值.一般都是0002或0022. ...

  4. linux如何建立隐藏目录,【Linux】文件与目录的默认权限与隐藏权限

    01. 文件默认权限:umask 文件的权限可以使用chmod来改变,但是我们默认创建文件的权限是什么?那就是与umask这个有关了.下来我们学习这个指令 1.1 简单使用umask [root@iZ ...

  5. Linux文件与目录的默认权限与隐藏权限(chattr,lsattr)

    文章目录 Linux文件与目录的默认权限与隐藏权限 文件默认权限:umask 文件隐藏属性 chattr(配置文件隐藏属性) 使用案例 lsattr(显示文件隐藏属性) 使用案例 文件特殊权限:SUI ...

  6. linux acl 权限 给任何用户或用户组设置任何文件/目录的访问权限

    ACL 是什么 ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表.它在UGO权限管理的基础上为文件系统提供一个额外的.更灵活的权限管理机制. ...

  7. Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

    Linux-鸟菜-6-文件与目录的 默认权限.隐藏权.特殊权限 除了基本r,w,x权限外,在Linux还可以设定其他系统隐藏属性,可以用chattr来设定,和lsattr来查看,但注意一点,CentO ...

  8. 文件与目录的默认权限与隐藏权限

    除了基本r, w, x权限外,在Linux的Ext2/Ext3文件系统下,我们还可以配置其他的系统隐藏属性, 这部份可使用 chattr来配置,而以 lsattr 来查看. 文件默认权限:umask ...

  9. Linux使用笔记: 设置Samba服务器中新建文件/目录的权限

    From: http://easwy.com/blog/archives/set-file-directory-attribute-for-linux-samba/ 通过Samba服务器实现windo ...

最新文章

  1. 有赞搜索引擎实践(算法篇)
  2. 对学校的希望和寄语_南中医举行2020年开学典礼,校长胡刚寄语“后浪”:乘风破浪,扬帆起航...
  3. linux无线网卡消失,linux下wpa/wpa2的无线网卡设置 [暂时还没有证实是否能用]
  4. random模块详解
  5. DecimalFormat 用法
  6. 阿里巴巴开源技术汇总:115个软件(四)
  7. springcloud官方文档_springcloud-microservice 快速构建分布式系统
  8. Eclipse用法和技巧十二:快速复制一行
  9. python工资一般多少p-大神级Python工程师是怎么P图的,带你用Python玩转P图
  10. 编程基本功:自己听不懂,不要埋怨别人讲的没用
  11. 如何找到想要的资源?
  12. 云服务器配置ssh登陆(putty + puttygen)
  13. 公众号数据分析总结怎么做?教你玩转公众号后台数据
  14. wps如何只让他显示3级标题_wps如何设置标题级别:wps一级标题怎么设置
  15. 离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决
  16. [Usaco2010Hol]Dotp
  17. java安卓软件开发_9大安卓app开发软件盘点,0基础自己也能开发开发安卓app
  18. java-集合框架库-HashMap
  19. 如何用PS的样式制作图片椭圆形边框
  20. 短信导出工具V1.3

热门文章

  1. C++并发编程线程间共享数据std::future和sd::promise
  2. leetCode-第四题求两个数组的中位数
  3. go语言中结构体与json
  4. 您必须有下列压缩分卷才能继续解压
  5. .html?t=1a=2类似传递参数到flex中
  6. Python学习之共享引用
  7. 解决layui数据表格table固定列行高不一致的情况
  8. 从思维导图学习操作系统(一)
  9. hdu1597(二分)
  10. hdu2152(普通母函数)