`

linux那个umask值是什么?

 
阅读更多

我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢?
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。

一 权限掩码umask

umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)+写(2)+执行(1),同组的和其它用户有读写权限)

二 umask的作用

默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认 权限是755(7-0,7-2,7-2),可以用ls -l验证一下哦 现在应该知道umask的用途了吧,它是为了控制默认权限,不要使默认的文件和目录具有全权而设的

三 修改umask值

知道了umask的作用后,你可以修改umask的值了,例如:umask 024则以后建立的文件和目录的默认权限就为642,753了

四 将umask值保存到环境文件

若要长期修改umask的值,可以把它写进/etc/profile或~/.profile或~/.bash_profile中,大家应该知道这几个文件是干什么用的吧。

您知道当你建立一个新的档案或目录时,他的预设属性会是什么吗?呵呵!那就与 umask 有关了!那么 umask 是在搞什么呢?基本上, umask 就是指定『目前使用者在建立档案或目录时候的属性默认值』,那么如何得知或设定 umask 呢?他的指定条件以底下的方式来指定:语法:

[root @test root]# umask 0022 [root@vbird test]# umask 002 <==后面接 3 个数字! [root@vbird test]# umask 0002

说明:查看 umask 数值为直接输入 umask 即可,而设定呢?没错!就是 umask 之后接三个数字!那么如何来指定呢?主要还是跟 Linux 的档案属性(那九个属性, r, w, x )有关的,而且是以分数的那一个关系为例的,而有底下的规则为辅:

若使用者建立为『档案』则预设『没有可执行 ( x ) 项目』,亦即只有 rw 这两个项目,也就是最大为 666 分

–rw-rw-rw-

若使用者建立为『目录』,则由于 x 与是否可以进入此目录有关,因此预设为所有权限均开放,亦即为 777 分

drwxrwxrwx   那么 umask 指定的是『该默认值需要减掉的权限!』因为 r、w、x 分别是 4、2、1 分,所以啰!也就是说,当要拿掉能写的权限,就是输入 2 分,而如果要拿掉能读的权限,也就是 4 分,那么要拿掉读与写的权限,也就是 6 分,而要拿掉执行与写入的权限,也就是 3 分,这样了解吗?请问您, 5 分是什么?呵呵!就是读与执行的权限啦!如果以上面的例子来说明的话,因为 umask 为 002 ,所以 user, group 并没有被拿掉属性,不过 others 的属性被拿掉了 2 ( 也就是 w 这个属性 ),那么由于当使用者:   建立档案时:(-rw-rw-rw-) – (——–w-) ==> -rw-rw-r– 建立目录时:(drwxrwxrwx) – (——–w-) ==> drwxrwxr-x   不相信吗?你只要使用 touch test 然后看看这个 test 的档案属性,就可以知道了!那么如何看你这个使用者目前的 umask呢?直接下达 umask 即可!实作看看先:   [root@vbird test]# umask 0002 [root@vbird test]# touch test1 [root@vbird test]# mkdir test2 [root@vbird test]# ls -l -rw-rw-r– 1 root root 0 Oct 22 00:00 test1 drwxrwxr-x 2 root root 4096 Oct 22 00:00 test2/

发现了什么?呵呵! Test1 的属性为 666-002 = 664 !正确吗?是的!正确!而 test2 这个目录呢?就是 777-002 = 775 !也正确!

[root@vbird test]# umask 003 [root@vbird test]# touch test3 [root@vbird test]# mkdir test4 [root@vbird test]# ll -rw-rw-r– 1 root root 0 Oct 22 00:03 test3 drwxrwxr– 2 root root 4096 Oct 22 00:03 test4/

嘿!属性又跟刚刚的不一样啰!仔细推敲一下为什么呦!test3 666-003 =663,这是怎么一回事?! 663 应该是 -rw-rw–wx 才对啊!怎么会是上面的属性!呵呵!这里就要特别的给他强调了!『尽量不要以数字相加减啦!』容易造成类似上面的问题!你应该要这样想(-rw-rw- rw-) – (——–wx)=-rw-rw-r–这样就对啦!了解了吗?不要用十进制的数字喔!够能力的话,用二进制来算,不晓得的话,用 rwx 来算喔!

由上面的例子您应该很轻易的就可以发现 umask 的用途!而这个 umask 可以在 /etc/bashrc 里面进行修改喔!预设的情况之下, root 的 umask 为 022 而一般使用者则为 002 ,因为可写的权限蛮严重的,因此预设都会拿掉这个权限!此外,因为 root 比较重要!所以为了安全的需求,其同群组的写入属性就被拿掉了!这东西对于安全性也有一定程度的贡献呦!

例如,对于u m a s k值0 0 2,相应的文件和目录缺省创建权限是什么呢? 第一步,我们首先写下具有全部权限的模式,即7 7 7 (所有用户都具有读、写和执行权限)。 第二步,在下面一行按照u m a s k值写下相应的位,在本例中是0 0 2。 第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。 稍加练习就能够记住这种方法。 第四步,对于文件来说,在创建时不能具有文件权限,只要拿掉相应的执行权限比特即 可。 这就是上面的例子,其中u m a s k值为0 0 2: 1) 文件的最大权限rwx rwx rwx (777) 2) umask值为0 0 2 – - – - – - -w- 3) 目录权限rwx rwx r-x (775) 这就是目录创建缺省权限 4) 文件权限rw- rw- r– (664) 这就是文件创建缺省权限 下面是另外一个例子,假设这次u m a s k值为0 2 2: 1) 文件的最大权限rwx rwx rwx (777) 2 ) u m a s k值为0 2 2 – - – -w- -w- 3) 目录权限rwx r-x r-x (755) 这就是目录创建缺省权限 4) 文件权限rw- r– r– (644) 这就是文件创建缺省权限

分享到:
评论

相关推荐

    深入浅出linux系统umask值及其对应的文件权限讲解.pdf

    深入浅出linux系统umask值及其对应的文件权限讲解.pdf

    201408深入浅出linux系统umask值及其对应文件权限(老男孩教育).pdf

    201408深入浅出linux系统umask值及其对应文件权限(老男孩教育).pdf

    详解linux下umask的使用

    最近开始学习linux ,看完马哥的linux课程关于umask的这个部分, 写这篇博客希望加深下我对umask的理解 和对umask不太清楚的博友一些帮助。 1 umask 是什么 当我们登录系统之后创建一个...默认情况下的umask值是022(可

    sujiangming#BigData-3#Linux umask文件创建时的权限的缺省模式1

    一、如何设置 umask 值通过 umask 命令可以设定文件创建时的缺省模式,对于每一类用户(文件属主、同组用户、其他用户)都存在一个相应的 umask 值中

    LINUX与UNIX_Shell编程指南.rar

    本书共分五部分,详细介绍了shell编程...1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 ==========================

    Linux系统加固.pdf

    从系统密码策略、管理系统账号和用户、设置系统的umask值,等等方面加固Linux系统安全,并且基于shell脚本实现。

    Linux系统文件的默认权限和特殊权限

    默认权限 umask [root@CentOS7 data]# touch file1 ; ll file1 -rw-r--r--....[root@CentOS7 data]# mkdir ...这就要聊聊umask了,Linux系统中默认的umask值是022,它直接影响了用户创建的文件或目录的默认权限,它与chmo

    Linux shell 编程

    1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name...

    Linux FTP服务配置

    首先说一下概念,什么是本地用户,本地用户就是你系统/home目录下的用户,当然有的用户建立时候使用-m命令,使用户在/home下没有目录,但是这个词的意思就是系统里面有的用户. local_enable=YES //允许本地用户登录 local...

    linux复习题

    7.已知当前系统umask的值为022,请问这时新建目录文件的权限为()。 A. 755 B. 644 C.775 D.664 8.已知用户sarwar在虚拟终端1和虚拟终端2及图形用户界面下登录,请问sarwar在虚拟终端1中执行ls &gt;tty2后,命令输出到...

    LINUX与UNIX SHELL编程指南(很全)

    14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 14.2.6 使用变量来保存系统命令...

    LINUX与UNIX SHELL编程指南

    1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 ...

    Linux shell编程指南

    14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 14.2.6 使用变量来保存系统命令...

    linux命令(用户与文件权限管理)1

    非root用户的文件一般存放在自己的家目录,除非root改变系统的umask值(1)系统的用户文件:/etc/passwd 中用户名:密码(影子文件):用户ID

    Linux与unix shell编程指南

    14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 14.2.6 使用变量来保存系统命令...

    绝版经典《Linux与UNIX Shell编程指南》

    14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 14.2.6 使用变量来保存系统命令...

    linux十二章-虚拟用户访问ftp.mp4

    Benet6.0 S2 LINUX 第十二章 实验报告 姓名: 李勰 所在班级: hb3017 日期: 2020 年 7 月 7 日 实 验 任 务 1. 搭建服务之前先关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    ◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)...

Global site tag (gtag.js) - Google Analytics