zoukankan      html  css  js  c++  java
  • umask

    umask命令的一般格式:

    [1]umask [选项] [掩码]
     
    该命令用来设置限制新文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行,并自动设置掩码改变默认值,新的权限将会把旧的覆盖。
    选项及其含义如下。
    -S:显示当前的掩码。
    umask是从权限中“拿走”相应的位,且文件创建时不能赋予执行权限

    umask使用方法

    • A 什么是umask?
    当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、$[HOME]/.profile或$[HOME]/.bashrc中设置umask值。具体取决于Linux发行版,比如Fedora19下要更改自己的umask值,在$[HOME]/.profile或$[HOME]/.bash_profile下的增加umask的值覆盖不了/etc/profile中的配置值的,必须在$[HOME]/.bashrc下增加umask值才可以永久定义自己的umask值。
    你的系统管理员必须要为你设置一个合理的 umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用umask命 令来改变文件创建的缺省权限。相应的改变直到退出该shell或使用另外的umask命令之前一直有效。一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile或.bashrc文件中。
    • B 如何计算umask值
    umask 命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最 大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来 说,umask中各个数字最大可以到7。
    该命令的一般形式为:
    umask nnn
    其中nnn为umask置000-777。
     
    例如,对于umask值0 0 2,相应的文件和目录缺省创建权限是什么呢?
    第一步,我们首先写下具有全部权限的模式,即777 (所有用户都具有读、写和执行权限)。
    第二步,在下面一行按照umask值写下相应的位,在本例中是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) 这就是文件创建缺省权限
    • C 常用的umask值
    下表列出了一些umask值及它们所对应的目录和文件权限。
    常用的umask值及对应的文件和目录权限
    umask值 目录 文件
    022 755 644
    027 750 640
    002 775 664
    006 771 660
    007 770 660
    • D umask命令
    如果想知道当前的umask 值,可以使用umask命令:
    $umask
    如果想要改变umask值,只要使用umask命令设置一个新的值即可:
    $ umask 002
    确认一下系统是否已经接受了新的u m a s k值:
    $umask
    002
    $touch testfile
    $ls -l testfile
    rw- rw- r--
    在使用umask命令之前一定要弄清楚到底希望具有什么样的文件/目录创建缺省权限。否则可能会得到一些非常奇怪的结果;例如,如果将umask值设置为6 0 0,那么所创建的文件/目录的缺省权限就是0 6 6!
  • 相关阅读:
    Haskell Interactive Development in Emacs
    Access Java API in Groovy Script
    手工设置Eclipse文本编辑器的配色
    Color Theme of Emacs
    Gnucash的投资记录
    Special Forms and Syntax Sugars in Clojure
    Use w3m as Web Browser
    SSE指令集加速之 I420转BGR24
    【图像处理】 增加程序速度的方法
    TBB 入门笔记
  • 原文地址:https://www.cnblogs.com/baiyw/p/3328168.html
Copyright © 2011-2022 走看看