peter@initroot:/tmp$ touch testfile

peter@initroot:/tmp$ mkdir testdir

peter@initroot:/tmp$ ls -ld testfile testdir

drwxr-xr-x 2 peter peter 4096 Jan 6 20:13 testdir

-rw-r--r-- 1 peter peter 0 Jan 6 20:13 testfile

这里ls命令的-d选项表示,如果后面的参数是一个目录的话,只显示该目录本身的详细信息,而不是目录内文件的详细信息。

我们上面讲到,文件和目录的默认权限分别是-rw-rw-rw-和drwxrwxrwx。这里怎么变成-rw-r--r--和drwxr-xr-x了呢?

本来想法是挺简单的。但是其实上面所讲的默认值是有问题的,虽然可以适应大部分情况,但并不适合所有的用户环境。因为每个用户对文件默认权限的要求都是不一样的,

有的用户希望创建的新文件默认不被读取,而有的用户希望新文件的默认权限可以被读取修改。有的用户希望新建的目录默认可以允许进入,

但是有的用户可能不希望这样。真是众口难调啊。于是linux本着为用户服务的宗旨,让大家可以根据自己的实际需求和喜好自行设置文件和目录的默认权限属性。

我们将上面讲到的文件和目录默认权限称为原始默认权限:

普通文件原始默认权限为-rw-rw-rw-,权限值为666;

目录原始默认权限为drwxrwxrwx,权限值为777。

由于文件的原始默认权限属性无法直接修改,用户只能通过修改umaks值的方式间接修改文件的默认权限。

umask是文件权限掩码的意思,新建文件和目录的默认权限值就是在原始默认权限的基础上去掉umask值,umask值与原始默认权限共同决定了新建文件和目录的默认权限值。

可直接通过umask命令查看当前系统的umask值:

[root@initroot ~]# umask

0022

这个值看不懂?没关系,就像chmod有两种形式的权限书写形式一样,

umask也有两种显示方式,以上是数字形式的umask值,我们可以通过-S(Symbolic)选项,以字符型的方式显示掩码值:

[root@initroot ~]# umask -S

u=rwx,g=rx,o=rx

umask的数值共有四位,例如上面的输出0022,四位数表示四组权限值,分别是文件特殊权限,文件所有者权限,文件所属用户组权限,其他用户权限。

这里我们先忽略掉文件特殊权限位。

umask值指的是需要从原始默认权限减掉的权限! 我们已经知道r、w、x的数值分别是4、2、1。 所以如果要去掉写权限,umask值中相应的位就是2,

如果要去掉读权限,那就是4, 去掉读与写权限,就是6, 去掉执行与写权限,就是3,去掉读与执行的权限,就是5!

而我们通过-S选项的输出u=rwx,g=rx,o=rx可以看出,u=rwx表示文件所有者权限没有去掉任何权限,对应umask相应位的数值为0,

g=rx,o=rx表示文件所属用户组和其他用户去掉了w权限,对应的umaks相应位的数值就是2,所有umask的数值为0022.

这样文件的默认权限就是:

原始默认权限(-rw-rw-rw-) - umask掩码(-----w--w-) = (最终默认权限)-rw-r--r--;

目录的默认权限就是:

原始默认权限(drwxrwxrwx) - umask掩码(d----w--w-) = (最终默认权限)drwxr-xr-x

与我们上面ls -al命令的输出正好吻合:

peter@initroot:/tmp$ touch testfile

peter@initroot:/tmp$ mkdir testdir

peter@initroot:/tmp$ ls -ld testfile testdir

drwxr-xr-x 2 peter peter 4096 Jan 6 20:13 testdir

-rw-r--r-- 1 peter peter 0 Jan 6 20:13 testfile

所以修改umaks值就可以修改文件或者目录的默认权限属性了,那么如何设置umask值呢?

直接在umask后面输入数值就可以了。例如我希望建立的文件所属用户组默认是具有读写权限的,那么只需要在umask后面加入0002就可以了:

root@initroot:/tmp# umask 002

root@initroot:/tmp# touch testfile1

root@initroot:/tmp# mkdir testdir1

root@initroot:/tmp# ls -ld testfile1 testdir1

drwxrwxr-x 2 root root 4096 Jan 6 20:13 testdir1

-rw-rw-r-- 1 root root 0 Jan 6 20:13 testfile1

假设umask为003,那么新建文件文件与目录默认权限是多少呢?

umask为003,所以去掉的权限为--------wx,因此:

文件默认权限: (-rw-rw-rw-) - (--------wx) = -rw-rw-r--

目录默认权限: (drwxrwxrwx) - (d-------wx) = drwxrwxr--Set UID,简称为 SUID

我们每次通过命令更改umask值,但是在关闭shell或者重启后,umaks又恢复到了原来的值,如果想让umask的设置值一直保留下去,

那么需要将该命令写入~/.bashrc文件中。root的umask会拿掉比较多的属性,root的umask默认是0022, 这是基于安全的考虑.

至于一般用户,默认的umask为0002,即保留用户群组的写入权限! 其实,关于默认umask的设置可以参考/etc/bashrc文件,不过,不建议修改该文件。

initroot编辑整理,转载请注明www.initroot.com

linux掩码,linux文件权限掩码umask相关推荐

  1. Linux文件属性3——文件权限管理

    以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 1.st_mode中记录的文件权限位 st_mode本质上是一个32位的数(类型就是unsinged int),这 ...

  2. Linux基础之文件权限详解

    Linux中对于权限的制定虽然没有Windows的那么精细,但是如果你了解并掌握Linux中文件的权限知识,也可以像Windows那样对权限做到精确配置. Linux中的文件权限是什么? 如何查看Li ...

  3. linux权限源码分析,Linux基础之文件权限详解

    Linux中对于权限的制定虽然没有Windows的那么精细,但是如果你了解并掌握Linux中文件的权限知识,也可以像Windows那样对权限做到精确配置. Linux中的文件权限是什么? 如何查看Li ...

  4. Linux增加/删除文件权限

    Linux增加/删除文件权限 ubuntu系统中,对于不同用户及不同用户组中用户对文件的操作权限都不相同,通过控制台我们可以快速的对文件权限进行操作. 对于修改权限可以使用两种方案来更改其权限,下面认 ...

  5. 深入理解Linux中的文件权限

    Linux中文件权限 Linux中每个文件都有一个特定的拥有者(一般是创建它的用户)和所属用户组,这是它的固有属性.文件可以利用这两个固有属性来规定它的拥有者或者是所属用户组内的用户是否拥有对它的访问 ...

  6. linux编程参数列表,Linux编程 14 文件权限(用户列表passwd,用户控制shadow,useradd模板与useradd命令参数介绍)...

    一. 概述 linux安全系统的核心是用户账户. 创建用户时会分配用户ID(UID). UID是唯一的,但在登录系统时不是用UID,而是用登录名.在讲文件权限之之前,先了解下linux是怎样处理用户账 ...

  7. linux 文件权限 rwt,Linux下修改文件权限(所有权)

    Linux与Unix是多用户操作系统,所以文件的权限与所有权的实现就显得很有必要:每个文件主要与三组权限打交道,分别是用户(user),用户组(group),其他用户(other) 用户(u)是文件的 ...

  8. linux系统电脑的权限设置,Linux下的文件权限设置修改详解linux操作系统 -电脑资料...

    在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与 ...

  9. linux 774是什么权限,7.6 Linux用户与文件权限操作实例

    <7.6 Linux用户与文件权限操作实例>由会员分享,可在线阅读,更多相关<7.6 Linux用户与文件权限操作实例(15页珍藏版)>请在人人文库网上搜索. 1.Linux用 ...

最新文章

  1. 树莓派应用:摄像头条形码扫描
  2. ASP.NET中序列化与反序列化-以显示上一次登录的信息为例
  3. WPF中实现验证码功能
  4. (转)dp动态规划分类详解
  5. LeetCode 1688. 比赛中的配对次数(模拟)
  6. 解决视图状态消息验证代码 (MAC) 错误
  7. leetcode easy problem set
  8. linux设置r镜像,一劳永逸,R的个性化默认配置
  9. Atitit 教育学体系 教育学主要内容多语言,教学论,心理学,体育 高等教育学 职业技术教育学 教育史
  10. UML用例图分析——铁路售票系统
  11. 手工笔筒制作教程(附彩色贴图分享)
  12. 【读书笔记】《暗时间》
  13. 模板消息php 群发,微信公众号模板消息群发php代码示例
  14. Excel中文转拼音【真正的完整版】 拼音 驼峰命名专用
  15. 最新研究发现:另一半学历越高,你的身体可能就越健康
  16. 计算机开机后无法网络拨号怎样处理,电脑不能拨号上网显示调制解调器已删除怎么办...
  17. 我的世界mod开发(6)无敌的护甲
  18. 【Ubuntu20安装aria2以及配置web端】
  19. 外贸企业邮箱域名是什么?企业内部邮箱域名注册解析怎么做?
  20. java中的直接内存

热门文章

  1. 「hdu6608」Fansblog【Miller_Rabin+威尔逊定理】
  2. 我的瞎搞开发工具集以及对一些工具的比较
  3. Android studio 生成ARR包
  4. 【对软件项目的一些理解】多维团队分工合作模式
  5. uva 11595 - Crossing Streets EXTREME(切割多边形)
  6. 观小林coding图解网络总结
  7. c语言mon什么意思,c'mon是什么意思啊 – 手机爱问
  8. 你的跑步姿势正确吗? 教你正确跑步姿势 常识
  9. 吉米_王:乌班图下安装pycharm的方式
  10. 计算机一接上网线重新启动,一插上网线电脑会自动重启解决方法