linux命令——umask

用途

预设权限(权限掩码)

我们知道, 当我们建立一个目录或档案时,它都会带一个默认的权限:

若使用者建立为 '档案' 则预设 '没有可执行 ( x ) 项目', 亦即只有 rw 这两个项目,  用数字表示就是666或字母 

                  –rw-rw-rw-

若使用者建立为 '目录', 则由于 x 与是否可以进入此目录有关, 因此预设为所有权限均开放, 亦即为777 或字母
                  d-rwx-rwx-rwx

umask就与这个默认权限有关. 那么 umask 是在搞什么呢? umask 就是指定 '目前用户在建立档案或目录时候的权限默认值'.

用法

1. 查看

我们可以这样查看umask默认值,

# 查看
$umask         # 数字形式
002           # 有的机器可能会显现4个数字,我们一般用后三个 $umask -S       # 字符形式  u=rwx,g=rwx,o=rx

要注意的是,umask 的分数指的是该默认值需要减掉的权限。

因此,上面的002实际上是去掉了其他用户的写权限,对于档案来说也就是, 实际权限是664,即:

                    -rw-rw-r-

对于目录来说, 实际是773, 即:

                    -rwx-rwx-rx

2. 设置

umask 002

umask后面接3个数字就可以设定了. 若要长期修改umask的值, 可以把它写进/etc/profile或~/.profile或~/.bash_profile中. 

例题

假设你的 umask 为 003, 请问该 umask 情况下, 建立的档案和目录权限为?
答: umask 为 003, 所以拿掉的权限为 --------w, 因此:

  档案: (-rw-rw-r-) - (--------wx) = -rw-rw-r--

  目录: (drwxrwxrwx) - (--------wx) = drwxrwxr--

以上面例题来看,  如果使用默认属性相加减, 则档案变成, 666-003=663, 亦即是 -rw-rw--wx , 这可是完全不对的!  想想看, 原本档案就已经去除 x 的默认属性了, 怎么可能突然间冒出来了? 所以, 这个地方得要特别小心. 

posted @ 2014-04-17 10:00  TonyZheng  阅读(12367)  评论(1编辑  收藏  举报