很多人以为 创建文件默认权限就是 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计算创建文件、目录的默认权限的更多相关文章

  1. Linux_修改创建文件夹时默认权限(修改为能上传)

    1:查看当前权限 umask 0022 意思就是权限为:777-022 =755 读 2:临时修改 umask 020 020 意思为:777-020=757 读写上传 3:永久修改 回到根目录 cd ...

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

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

  3. Linux学习之CentOS(九)-----文件与目录的默认权限与隐藏权限

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

  4. 文件与目录的默认权限与隐藏权限【转vbird】

    一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略提过了(chgrp, chown ...

  5. Linux学习之CentOS(八)----文件与目录的默认权限与隐藏权限(转)

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

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

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

  7. 修改Mac新建文件、文件夹的默认权限

    Mac 新建文件和文件夹默认 当前用户才有读和写的权限,其他用户只有读的权限 修改Mac新建文件.文件夹的默认权限的步骤如下: 1.打开 “终端” 2.在终端中输入以下命令: 创建文件时,从默认值(对 ...

  8. Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

    文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...

  9. LINUX创建文件和目录的默认权限

    在linux中,一位用户在创建文件和目录时,对其具有的权限都是一样的,如需更改,需要chmod命令做相应的更改.为什么?其实是权限掩码起作用了. 权限掩码的作用就是规范初创文件和目录时候的权限设置,免 ...

随机推荐

  1. XCTF练习题---WEB---robots

    XCTF练习题---WEB---robots flag:cyberpeace{6c4b08933075fc620d16d1157ee07a7e} 解题步骤: 1.观察题目,打开场景 2.打开实验场景, ...

  2. CS基础课不完全自学指南

    本文讲的是计算机学生怎么自学专业课,说长点就是该如何借助网络上已有的高质量学习资源(主要是公开课)来系统性的来点亮自己的CS技能树.这篇文章完全就是一篇自学性质的指南,需要对编程充满热情,起码觉得编程 ...

  3. data structure assignment problem record

    Question1: Similar to pause command in linux read -n 1 Question2 read : Illegal option -n 原因为ubuntu ...

  4. 聊聊 HTTPS

    聊聊 HTTPS 本文写于 2021 年 6 月 30 日 最近工作也是越来越忙了,不像上学的时候,一天下来闲着没事可以写两篇博客. 今天来聊一下 HTTPS. HTTP HTTP 是不安全的协议. ...

  5. python 动态规划(背包问题和最长公共子串)

    背包问题 现在要往一个可以装4个单位重量的背包里怎么装价值最高:A重量1个单位,价值15:B重量3个单位,价值20:C重量4个重量,价值30 使用动态规划填充空格 class SolutionBag: ...

  6. 135_Power Query M语言快捷输入之输入法设置自定义短语

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 因为工作原因,把电脑重装了下,当敲M的时候总感觉那里不对.原来是我的M自定义短语没有同步.由于我的自定义短语还是 ...

  7. python闭包函数与装饰器

    目录 闭包函数 闭包概念 实际应用 装饰器 简介 简单版本装饰器 进阶版本装饰器 完整版本装饰器 装饰器模板 装饰器语法糖 装饰器修复技术 问题 答案 闭包函数 闭包概念 闭:定义在函数内部的函数 包 ...

  8. HDFS 细粒度锁优化,FusionInsight MRS有妙招

    摘要:华为云FusionInsight MRS通过FGL对HDFS NameNode锁机制进行优化,有效提升了NameNode的读写吞吐量,从而能够支持更多数据,更多业务请求访问,从而更好的支撑政企客 ...

  9. 关于我学git这档子事(5)

    对于错误: fatal: refusing to merge unrelated histories 解决之道: git pull origin main --allow-unrelated-hist ...

  10. mysql外键创建不成功/失效

    当前mysql版本:SELECT VERSION();结果为:5.5.40. 在复习mysql外键约束时创建表格:stu与grade,目标:grade的id随着student的id级联更新,且限制删除 ...