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命令做相应的更改.为什么?其实是权限掩码起作用了. 权限掩码的作用就是规范初创文件和目录时候的权限设置,免 ...
随机推荐
- 注解,lombok
使用注解开发 UserMapper public interface UserMapper { @Select("select * from db4.user") List< ...
- 异步编程利器:CompletableFuture
一.一个示例回顾Future 一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度. JDK5新增了Future接口,用于描述一个异步计算的结果.虽然 Future 以及相关使用方法提供了异步 ...
- CTFHub-HTTP协议五关刷题解答
CTFHub 开箱即用的CTF学习解决方案 地址:https://www.ctfhub.com/#/skilltree 本次解答一共包括五关,没有先后顺序. 1.技能树一:请求方式 题目描述 打开后得 ...
- 解读论文《Agglomerative clustering of a search engine query log》,以解决搜索推荐相关问题
<Agglomerative clustering of a search engine query log> 论文作者:Doug Beeferman 本文将解读此篇论文,此论文利用搜索日 ...
- 解决 js aysnc await try-catch 地狱
- OAuth2.0笔记
OAuth2.0笔记 角色 一般资源服务器和授权服务器是一个 资源拥有者 客户端应用 资源服务器 授权服务器 客户端类型 OAuth 2.0规范定义了两种客户端类型: 保密的:web应用 公有的:用户 ...
- 第06组 Beta冲刺 (1/6)
目录 1.1 基本情况 1.2 冲刺概况汇报 1.郝雷明 2. 方梓涵 3.曾丽莉 4.黄少丹 5. 董翔云 6.杜筱 7.鲍凌函 8.詹鑫冰 9.曹兰英 10.吴沅静 1.3 冲刺成果展示 1.1 ...
- 《Effective C++》阅读总结(二):类的构造、析构和赋值
今天是周六早上,但很不幸待会儿还是要去公司,本月kpi还剩一些工作要做,这个月计划的Effective C++学习,也基本完成了,最后一章节模板相关那部分还看不太懂,就大概过了一遍.现在是收尾总结阶段 ...
- Canvas 线性图形(五):多边形
前言 CanvasRenderingContext2D 没有提供绘制多边形的函数,所以只能由我们自己来实现绘制多边形的函数.以六边形为基础,需要用到三角函数:sin 和 cos. 点 A 坐标 (一) ...
- 【原创】项目五w1r3s.v1.0
实战记录 1.nmap信息枚举 1)C段扫描 nmap -sP 192.168.186.0/24 2)扫描全端口信息 nmap -p- 192.168.186.143 3)扫描版本信息 nmap -p ...