我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢?
umask是什么? 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。 如何计算umask值? umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7。 该命令的一般形式为:umask nnn 其中nnn为umask置000 - 777。 我们只要记住u m a s k是从权限中“拿走”相应的位即可。 如:umask值为022,则默认目录权限为755,默认文件权限为644。

linux中的 umask 函数主要用于:在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限。

文件的访问允许权限共有9种,分别是:rwxrwxrwx

它们分别代表:用户读 用户写 用户执行 组读 组写 组执行 其它读 其它写 其它执行

屏蔽的规则如下:

1. 不管屏蔽码是多少,

·新创建的文件默认不具有可执行允可权限。

·新创建的目录默认具有可执行允可权限。

2. 屏蔽码的格式为八进制格式,共三个八进制数。可设置如下 002 或 022 或 ......

3. 其中的每一个八进制数由三位表示,分别是 读 写  执行

4  2  1

例如 002 用二进制表示为: 0 0 0 -- 0 0 0 -- 0 1 0

4 2 1  4 2 1  4 2 1

4. 产生的文件为 umask 值求反后的允可权限,即

对于文件: ~002 = 664(新创建文件所应具有的访问权限)

对于目录: ~002 = 775(新创建目录所应具有的访问权限)

转载于:https://blog.51cto.com/flyingsnail/1053460

linux中的umask 函数相关推荐

  1. linux中进程退出函数:exit()和_exit()的区别

    linux中进程退出函数:exit()和_exit()的区别 (1)_exit()执行后立即返回给内核,而exit()要先执行一些清除操作,然后将控制权交给内核. (2)调用_exit函数时,其会关闭 ...

  2. Linux中 C++ main函数参数argc和argv含义及用法

    Linux中 C++ main函数参数argc和argv含义及用法 简介 argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vecto ...

  3. linux之getcwd函数解析,如何在Linux 中使用getcwd()函数

    如何在Linux 中使用getcwd()函数 发布时间:2021-03-15 17:35:21 来源:亿速云 阅读:106 作者:Leah 这期内容当中小编将会给大家带来有关如何在Linux 中使用g ...

  4. linux运行getch吗,在linux中使用getch()函数

    http://blog.csdn.net/xiaoweige207/article/details/6206265 由于在Linux中没有conio.h文件,所以不能直接用getch()函数,下面介绍 ...

  5. 在linux中使用getch()函数

    #include <termio.h>int getch(void) {struct termios tm, tm_old;int fd = 0, ch;if (tcgetattr(fd, ...

  6. linux中的sleep函数和delay函数

    对于做过单片机程序的朋友来说,delay是很常见的函数,通常就是while或者for循环,进行空指令的执行,由于单片机的晶振固定,一个机器周期的时间是固定的,执行多少个空指令, 就可以完成多少个机器周 ...

  7. 时间基础概念及Linux中的时间函数

    时间基础概念及Linux中的时间函数 时间相关概念 GMT 时间 UTC 时间 时区 `Time Zone` 夏令时 `DST` 本地时间 `localtime` Linux 系统中的时间 时钟基础概 ...

  8. linux内核的延时函数,linux中内核延时函数 (转)

    第一类延时函数原型是:(忙等) void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(unsi ...

  9. Linux中的umask

    1.文件和目录的默认权限 在Linux中,我们创建文件或者目录的时候,并没有指定user,group,other这三类用户的权限,实际上umask(遮罩码)决定了创建时的默认权限.如果是文件,就用66 ...

最新文章

  1. 管理信息系统的开发和管理
  2. 3.spring cloud + zookeeper注册中心 + Feign调用案例
  3. h5打开麦克风权限录音_手机使用应用时总是需要获取权限,这3个权限不能随意给,望周知...
  4. 介绍Azure服务平台,.NET Services及其中的访问控制服务(Access Control)
  5. xml android 字体,自定义字体和XML布局(Android)
  6. 前端学习(1926)vue之电商管理系统电商系统之美化一层循环的UI结构for循环渲染第二层结构
  7. javascript php 性能,浅谈页面装载js及性能分析方法_javascript技巧
  8. 价值98元的千神资源网模板
  9. DevExpress 创建EXCEL
  10. pytorch实现人脸识别_PyTorch实现,GitHub4000星:微软开源的CV库
  11. 【有返回值的回溯法】剑指offer——面试题66:矩阵中的路径(回溯法)
  12. Git以及GithubDesktop配置ssh访问/下载/上传 详细步骤
  13. 新版微信语音转发方法 萌妹子变声器手机版 微信语音怎么转发给别人
  14. 桌面图标有蓝底怎么办
  15. linux udev 禁用u盘,udev自动挂载U盘
  16. 企业邮箱品牌哪家好?四大品牌企业邮箱推荐
  17. Mobius反演学习
  18. php 支付宝 当面付(个人账号免签约)
  19. 常用的几种PPT做图小技巧!
  20. java利用pol导出excel

热门文章

  1. Protocol Buffer入门——轻松搭建java环境 .
  2. mybatis 中SQLServer 和 mysql 模糊查询 不同点
  3. 单表数据量过大处理策略
  4. swift - xcode10 - 点击事件交互BUG - (手势和button的addTarget方法)
  5. Windows下无法新建文件夹
  6. C#语法之Linq查询基础一
  7. [单选题]PDO::ATTR_ERRMODE设置为以下哪个值时,PDO会抛出PDOException?
  8. Linux 服务器集群系统实现方案详解
  9. DataGrid单击行时改变颜色
  10. 自定义Chrome 滚动条样式