umask计算创建文件、目录的默认权限
很多人以为 创建文件默认权限就是 666-umask=创建文件的默认权限
创建目录的默认权限就是 777-umask=创建目录的默认权限 这种计算其实是不严谨的
为什么我们创建的文件的权限是 644 呢?
我们创建文件的默认权限是怎么来的?
1.umask是什么
umask 命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相 应的 umask 值中的数字
文件默认权限=666 ,目录默认权限=777
我们一般在/etc/profile、$ [HOME]/.bash_profile 或$[HOME]/.profile 中设置 umask 值。
永久生效,编辑用户的配置文件vim .bash_profile
vim /etc/profile

说明:
UID 大于 199 且用户的组名和用户名一样,那么 umask 值为002 ,否则为022.
-gt 在shell中表示大于; id -g 显示用户组 ID ,id -gn 显示组名
临时生效: umask 权限补码
[root@study test]# umask 044
[root@study test]# touch 1.txt
[root@study test]# ll
总用量 0
-rw--w--w- 1 root root 0 7月 15 16:21 1.txt
创建文件默认权限是666 umask为044创建的文件权限为622 -rw--w--w-
看起来好像创建文件的权限是666-umask
那么真是666-umask这样计算的吗?
2.实验:将umask设为033
期望结果:
①.创建文件 666-033=633 即 -rw--wx-wx
②.创建目录 777-033=744 即 drwxr--r--
实验结果:
①.创建文件的权限为 644 即 -rw-r--r--
②.创建目录的权限为 744 即 drwxr--r--
[root@study test]# umask 033
[root@study test]# touch 2.txt
[root@study test]# mkdir 3
[root@study test]# ll
总用量 0
-rw-r--r-- 1 root root 0 7月 15 16:27 2.txt
drwxr--r-- 2 root root 6 7月 15 16:27 3

可以看到,目录权限预期与实验结果一样,但是文件权限预期与实验结果不一样,这是为什么呢?
其实用 默认创建权限减去umask是不严谨的,他有自己的计算公式
首先,创建文件的默认权限是666,创建目录的默认权限是777
那么当我们设了一个umask,创建的默认权限是什么呢?
3.通过umask计算文件、目录的默认创建权限:
3.1.计算方法:
①.将默认权限(目录777,文件 666)和umask 值都转换为2 进制
②.对 umask 取反
③.将默认权限和umask 取反后的值做与运算
④.将得到的二进制值再转换 8 进制,即为权限
以上面的实验为例
3.2.计算创建文件的默认权限:
umask为033 转化为二进制为 000 011 011
文件默认权限666转化为二进制 110 110 110
将umask转化为二进制后取反为 111 100 100
最后将默认文件权限与umask取反后做与运算得出
110 110 110
111 100 100
——————
110 100 100 即644 转换成字符为 -rw-r--r--
3.3.计算创建目录的默认权限
umask为033 转化为二进制为 000 011 011
文件默认权限666转化为二进制 111 111 111
将umask转化为二进制后取反为 111 100 100
最后将默认目录权限与umask取反后做与运算得出
111 111 111
111 100 100
——————
111 100 100 即744 转换为字符为 drwxr--r--
umask计算创建文件、目录的默认权限的更多相关文章
- Linux_修改创建文件夹时默认权限(修改为能上传)
1:查看当前权限 umask 0022 意思就是权限为:777-022 =755 读 2:临时修改 umask 020 020 意思为:777-020=757 读写上传 3:永久修改 回到根目录 cd ...
- linux 权限管理命令chown、chgrp、umask、linux新建文件或目录的默认权限755
chown /bin/chownchown [用户] [文件或目录] 改变文件或目录的所有者只有root可以改变文件或目录的所有者 root用户:mkdir /tmptouch /tmp/test.f ...
- Linux学习之CentOS(九)-----文件与目录的默认权限与隐藏权限
文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...
- 文件与目录的默认权限与隐藏权限【转vbird】
一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略提过了(chgrp, chown ...
- Linux学习之CentOS(八)----文件与目录的默认权限与隐藏权限(转)
文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...
- Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限
Linux-鸟菜-6-文件与目录的 默认权限.隐藏权.特殊权限 除了基本r,w,x权限外,在Linux还可以设定其他系统隐藏属性,可以用chattr来设定,和lsattr来查看,但注意一点,CentO ...
- 修改Mac新建文件、文件夹的默认权限
Mac 新建文件和文件夹默认 当前用户才有读和写的权限,其他用户只有读的权限 修改Mac新建文件.文件夹的默认权限的步骤如下: 1.打开 “终端” 2.在终端中输入以下命令: 创建文件时,从默认值(对 ...
- Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file
文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...
- LINUX创建文件和目录的默认权限
在linux中,一位用户在创建文件和目录时,对其具有的权限都是一样的,如需更改,需要chmod命令做相应的更改.为什么?其实是权限掩码起作用了. 权限掩码的作用就是规范初创文件和目录时候的权限设置,免 ...
随机推荐
- pandas子集选取的三种方法:[]、.loc[]、.iloc[]
pandas读取Excel.csv文件中的数据时,得到的大多是表格型的二维数据,在pandas中对应的即为DataFrame数据结构.在处理这类数据时,往往要根据据需求先获取数据中的子集,如某些列.某 ...
- 【原创】记一次对X呼APP的渗透测试
获取CMS并本地安装 X呼是一款开源的客服CMS系统,访问官网,下载安卓版本的app和源码本地搭建: 发现这cms预留admin表中的用户就不少.... 直接用预留的密码解密,然后就能登录手机APP了 ...
- MAUI候选版本3发布啦
我们很高兴发布.NET 多平台应用程序UI (.NET MAUI) 候选版本3,这个版本包含一系列新的改进.与以前的候选版本一样,RC3 包含在"上线"支持政策中,这意味着Micr ...
- Java基础(1)——ThreadLocal
1. Java基础(1)--ThreadLocal 1.1. ThreadLocal ThreadLocal是一个泛型类,当我们在一个类中声明一个字段:private ThreadLocal<F ...
- KMP算法(改进的模式匹配算法)——next函数
KMP算法简介 KMP算法是在基础的模式匹配算法的基础上进行改进得到的算法,改进之处在于:每当匹配过程中出现相比较的字符不相等时,不需要回退主串的字符位置指针,而是利用已经得到的部分匹配结果将模式串向 ...
- Pandas:添加修改、高级过滤
1.添加修改数据 Pandas 的数据修改是进行赋值,先把要修改的数据筛选出来,然后将同结构或者可解包的数据赋值给它: 修改数值 df.Q1 = [1, 3, 5, 7, 9] * 20 # 就会把值 ...
- 20212115 实验二 《python程序设计》实验报告
实验二 计算器设计 #20212115 2021-2022-2 <python程序设计> 实验报告二 课程: 课程:<Python程序设计>班级: 2121姓名: 朱时鸿学号: ...
- NodeJS全栈开发利器:CabloyJS究竟是什么
CabloyJS CabloyJS是一款顶级NodeJS全栈业务开发框架, 基于KoaJS + EggJS + VueJS + Framework7 文档 官网 && 文档 演示 PC ...
- 【C++ 字符串题目】 输入三个人名,按字母顺序排序输出
题目来源:https://acm.ujn.edu.cn Problem A: [C++ 字符串] 输入三个人名,按字母顺序排序输出 Time Limit: 1 Sec Memory Limit: 1 ...
- LoRa和NB-IoT会长期共存吗?
物联网有很多无线通信技术,主要是Zigbee,WiFi,蓝牙和Z-wave等短距离通信技术,另一种是LPWAN.LPWAN的两种类型之一在未授权的频谱上工作.另一种是2G/3G/4G蜂窝通信技术,该技 ...