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 的默认属性了, 怎么可能突然间冒出来了? 所以, 这个地方得要特别小心.