您的位置:首页 > 教程 > linux > linux下umask命令用途原理和计算方式详解

linux下umask命令用途原理和计算方式详解

2022-06-19 21:25:35 来源:易采站长站 作者:

linux下umask命令用途原理和计算方式详解

目录umaskumask用途原理1.umask值2.文件目录权限最大值3.常规计算4.严谨计算umask值修改1.临时生效(当前会话)2.永久生效总结umaskumask用途umask...otW站长之家-易采站长站-Easck.Com

目录
umask umask用途
原理
1. umask值
2. 文件目录权限最大值
3.www.cppcns.com 常规计算
4. 严谨计算
umask值修改
1. 临时生效(当前会话)
2. 永久生效
总结

otW站长之家-易采站长站-Easck.Com

umask umask用途

umask令新建文件和目录拥有默认权限。otW站长之家-易采站长站-Easck.Com

可以看到root创建的目录是755,文件是644otW站长之家-易采站长站-Easck.Com

[root@zaishu zaishu]# touch test.txt
[root@zaishu zaishu]# mkdir test

[root@zaishu zaishu]# ls -l
total 0
drwxr-xr-x 2 root root 6 Nov 25 16:29 test  
-rw-r--r-- 1 root root 0 Nov 25 16:28 test.txt

普通用户otW站长之家-易采站长站-Easck.Com

可以看到普通用户创建的目录是775,文件是664otW站长之家-易采站长站-Easck.Com

[mysql@zaishu ~]$ touch test.txt
[mysql@zaishu ~]$ mkdir test
[mysql@zaishu ~]$ ls -l
total 0
drwxrwxr-x 2 mysql mysql 6 Nov 25 16:30 test
-rw-rw-r-- 1 mysql mysql 0 Nov 25 16:30 test.txt

这些默认的权限值是通过umask设置运算得到。otW站长之家-易采站长站-Easck.Com

otW站长之家-易采站长站-Easck.Com

原理

linux 它是通过使用 umask 默认权限来给所有新建的文件和目录赋予初始权限的。那么,我们如何得知 umask 默认权限的值呢?直接通过 umask 命令即可:otW站长之家-易采站长站-Easck.Com

otW站长之家-易采站长站-Easck.Com

1. umask值

[root@zaishu ~]# umask
0022

[mysql@zaishu ~]$ umask
0002

#root用户默认是0022,普通用户默认是 0002otW站长之家-易采站长站-Easck.Com

umask 默认权限确实由 4 个八进制数组成,第 1 个数代表的是文件所具有的特殊权限(SetUID、SetGID、Sticky BIT)先忽略。后 3 位 “022” 对应为 ----w–w-。otW站长之家-易采站长站-Easck.Com

otW站长之家-易采站长站-Easck.Com

2. 文件目录权限最大值

Linux 系统中,文件和目录的最大默认权限是不一样:otW站长之家-易采站长站-Easck.Com

文件来讲,可拥有的最大默认权限是 666,即 rw-rw-rw-。x是文件最大权限,新建文件的时候不会给与,只能通过用户手工赋予。otW站长之家-易采站长站-Easck.Com

目录来讲,拥有的最大默认权限是 777,即 rwxrwxrwx。otW站长之家-易采站长站-Easck.Com

otW站长之家-易采站长站-Easck.Com

3. 常规计算

文件和目录的初始权限,通过计算得到:otW站长之家-易采站长站-Easck.Com

文件(或目录)的初始权限 = 文件(或目录)的最大默认权限 - umask权限otW站长之家-易采站长站-Easck.Com

[mysql@zaishu ~]$ umask
0002
[mysql@zaishu ~]$ mkdir test
[mysql@zaishu ~]$ ll -d test
drwxrwxr-x 2 mysql mysql 6 Nov 26 10:50 test  // 目录的默认权限最大可以是 777,777-002 =775

[mysql@zaishu ~]$ touch h.txt
[mysql@zaishu ~]$ ll h.txt 
-rw-rw-r-- 1 mysql mysql 0 Nov 26 10:52 h.txt //文件最大权限 666, 666-002(普通用户) 666-002 =664
[root@zaishu ~]# touch h2
[root@zaishu ~]# ls -l h2 
-rw-r--r-- 1 root root 0 Nov 26 10:53 h2 //文件最大权限 666, 666-002(root) 666-022 =644

otW站长之家-易采站长站-Easck.Com

4. 严谨计算

在计算文件或目录的初始权限时,直接使用最fPmqzWi大默认权限和 umask 权限的数字形式做减法,是不严谨的。例如,若 umask 默认权限的值为 033,按照数字形式计算文件的初始权限,666-033=633,但我们按照字母的形式计算会得到 (rw-rw-rw-) - (----wx-wx) = (rw-r–r--),换算成数字形式是 644。otW站长之家-易采站长站-Easck.Com

这里的减法,其实是“遮盖”的意思,也就是说,最大默认权限中和 umask 权限公共的部分,通过减法运算会被遮盖掉,最终剩下的“最大默认权限”,才是最终赋予文件或目录的初始权限。otW站长之家-易采站长站-Easck.Com

otW站长之家-易采站长站-Easck.Com

umask值修改

otW站长之家-易采站长站-Easck.Com

1. 临时生效(当前会话)

umask 权限值可直接修改:otW站长之家-易采站长站-Easck.Com

[root@localhost ~]# umask 002
[root@localhost ~]# umask
0002
[root@localhost ~]# umask 033
[root@localhost ~]# umask
0033

这种方式修改的 umask 只是临时有效,一旦重启或重新登陆系统,就会失效。otW站长之家-易采站长站-Easck.Com

otW站长之家-易采站长站-Easck.Com

2. 永久生效

让修改永久生效,则需要修改对应的环境变量配置文件 /etc/profile。otW站长之家-易采站长站-Easck.Com

[root@zaishu~]# vim /etc/profile
...省略部分内容...
if [ $UID -gt 199]&&[ "'id -gn'" = "'id -un'" ]; then
    umask 002
    #如果UID大于199(普通用户),则使用此umask值
else
    umask 022
    #如果UID小于199(超级用户),则使用此umask值
fi

otW站长之家-易采站长站-Easck.Com

总结

到此这篇关于linux下umask命令用途原理和计算方式详解的文章就介绍到这了,更多相关linux下umask命令详解内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!otW站长之家-易采站长站-Easck.Com

如有侵权,请联系QQ:279390809 电话:15144810328

相关文章

  • Linux下用GHOST来做系统备份

    Linux下用GHOST来做系统备份

    在Windows系统下备份我们可以用GHOST工具软件完成,Linux系统不能完全依赖于GHOST工具,一则是GHOST本身是有版权的软件,二是GHOST只支持ext2、ext3文件系统的Linux分区,不支持reiserfs、xfs等
    2019-10-25
  • 给 FreeBSD 12.1 安装 GNOME3 图形界面

    给 FreeBSD 12.1 安装 GNOME3 图形界面

    FreeBSD是一个完全开放的、安全的系统,可以Do it yourself的系统。但是个人还是不喜欢呆板的命令行界面,所有就给 FreeBSD 12.1 安装 GNOME3 图形界面。 开始操作,启动FreeBSD 12.1,以root身份
    2019-10-27
  • Ubuntu Studio一个不错的操作系统

    Ubuntu Studio一个不错的操作系统

    Ubuntu Studio 是一个基于 Ubuntu 而面向音频、视频及图形爱好者的操作系统。本次推出的 Ubuntu Studio 为 7.04 版,目前仅支持 Intel i386 兼容的处理器。 Ubuntu Studio 从大量的开源多媒体创作程序
    2019-10-25
  • 最受欢迎的10款Linux免费游戏

    最受欢迎的10款Linux免费游戏

    图为在Linux下运行的免费游戏America's Army 如果你认为 Linux下没有什么好游戏的话,那就错了!我们来看看Linux下最受欢迎的10款游戏吧,而且这些游戏都是完全免费的! # skyreal update(06-12
    2019-10-25
  • compiz fusion特效使用心得(附3D桌面图)

    compiz fusion特效使用心得(附3D桌面图)

    3D桌面图 LINUX发行版就是好,当大多数人还在沉迷于那些什么风格图标鸟玻璃效果甚至孜孜不倦津津乐道的时候,Linux的高手们已经悄悄为我们开启了一个桌面系统3D的时代。 当我第一次
    2019-10-25
  • Ubuntu 下aMule 的安装配置

    Ubuntu 下aMule 的安装配置

    aMule 是一个类似于 eMule 的多平台 P2P 客户端程序。以下将简略叙述 aMule 在 Ubuntu 中的安装及配置 [High ID] 与 [KAD] 的过程。 安装: sudo apt-get install amule sudo apt-get install amule-utils 如果需要
    2019-10-25
  • JMeter jp@gc - stepping thread group插件

    JMeter jp@gc - stepping thread group插件

    这是一个出单接口压力测试的小例子,了解一下压力测试最最基础的基础。出单接口是用来保险出单的,不需要在UI界面下一步下一步的出单,接口一调数据入库完事~~~。再啰嗦一句接
    2019-10-27
  • Ubuntu 下使用K3B软件刻录光盘(图)

    Ubuntu 下使用K3B软件刻录光盘(图)

    不知大家会不会在Ubuntu下刻录光盘呢?k3b是KDE环境下的一个CD/DVD刻录软件,有非常容易使用的界面,功能比较齐全。用起来感觉就象是win下的Nero一样简单自然,比ubuntu里原来的刻录CD方式
    2019-10-25