zoukankan      html  css  js  c++  java
  • Linux 命令

    umask 命令控制着创建文件时指定给文件的默认权限。它使用八进制表示法从文件模式属性中删除一个位掩码。

    参见下面的例子:

    [huey@huey-K42JE cmdline]$ rm -f foo.txt
    [huey@huey-K42JE cmdline]$ umask 
    0002
    [huey@huey-K42JE cmdline]$ touch foo.txt
    [huey@huey-K42JE cmdline]$ ls -l foo.txt
    -rw-rw-r-- 1 ucm ucm 0 Oct  3 17:32 foo.txt

    首先,删除 foo.txt 文件存在的所有副本,以保证一切都是重新开始。下一步,允许不带任何参数的 umask 命令,查看当前掩码值,得到的值是 0002(0022 是另一个常用的默认值),它是掩码的八进制表示形式。接着创建文件 foo.txt 的一个新实例,查看该文件的权限。

    可以发现,文件所有者和组都获得了读写权限,而其他所有用户则只读权限。其他所有用户没有写权限的原因在于掩码值。重复执行该实例,不过这次是自己设置掩码值。

    [huey@huey-K42JE cmdline]$ rm -f foo.txt
    [huey@huey-K42JE cmdline]$ umask 0000
    [huey@huey-K42JE cmdline]$ touch foo.txt
    [huey@huey-K42JE cmdline]$ ls -l foo.txt 
    -rw-rw-rw- 1 ucm ucm 0 Oct  3 17:38 foo.txt

    在设置掩码为 0000(实际上是关闭该功能)时,可以看到其他所有用户也拥有写权限了。为了理解它是如何实现的,再来看看八进制数。如果把改掩码展开成二进制形式,然后再与属性进行对比,那么就能明白是怎么回事了。

     原始文件模式   ---    rw-    rw-    rw-  
     掩码 000    000     000     010
     结果  ---    rw-    rw-    r--

    在设置掩码为 0000(实际上是关闭该功能)时,可以看到其他所有用户也拥有写权限了。为了理解它是如何实现的,再来看看八进制数。如果把改掩码展开成二进制形式,然后再与属性进行对比,那么就能明白是怎么回事了。

    先忽略掉掩码中前面的 0,观察掩码中出现 1 的地方,将会发现 1 的位置对应的属性被删除——在这个例子中对应的是其他所有用户的写权限。这就是掩码的操作方式。掩码的二进制数值中每个出现 1 的位置,其对应的属性都被取消。如果设置掩码值为 0022 那么具体操作如下。

     原始文件模式   ---    rw-    rw-    rw-  
     掩码 000    000     010     010
     结果  ---    rw-    r--    r--

    同样地,二进制数值中 1 出现的位置,其对应的属性都被取消。可以再试一下其他的掩码值(尝试一些带数字 7 的),以熟悉掩码的操作方式。记得每次操作完之后清理文件,并把掩码值还原成默认值。

    [huey@huey-K42JE cmdline]$ rm -f foo.txt; umask 0002

    大多数情况下,并不需要修改掩码值,系统提供的默认掩码值就很好了。然而,在一些高安全级别的环境下,则需要控制掩码值。

    命令格式

    umask [-p] [-S] [mode]

    命令参数

    -p
      如果 mode 省略了,则以可复用的形式输出当前的掩码值。
    -S
      以字符的形式显示当前的掩码值。

    实例

    a) 以字符的形式显示当前的掩码值。

    [huey@huey-K42JE cmdline]$ umask -S
    u=rwx,g=rwx,o=rx
  • 相关阅读:
    学习shell script
    ubuntu11.10安装出现/cdrom问题以及不能格式成ext问题
    正则表达式
    认识与学习bash(2)
    UNIX网络编程 一个简单的时间获取客户程序
    HDU4522
    恢复引导
    认识与学习bash(1)
    文件格式化处理
    C++解析csv文件
  • 原文地址:https://www.cnblogs.com/huey/p/4853668.html
Copyright © 2011-2022 走看看