Linux学习-umask详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习-umask详解相关的知识,希望对你有一定的参考价值。
umask --表示创建文件时的默认权限(即创建文件时不需要设置而天生的权限)
例如:我们发现
root用户下,touch a ,文件a的默认权限是644
普通用户下,touch b ,文件b的默认权限是664
644和664我们并没有设置,其中的关键因素就是umask
分析:
目录 | 文件 | |
最高权限 | 777 rwxrwxrwx | 666 rw-rw-rw- |
命令umask可以查看当前用户的umask值 (查看umask只看后三位,总共是4位)
root | 普通用户 | |
umask | 022 | 002 |
结合上述的举例得知:
默认权限=最高权限-umask( 644=666-022 // 664=666-002 )
但是:
当umask为011,创建文件的默认权限应该是655,但是实际运行的时候默认权限是 666
666 -> rw-rw-rw-
011 -> -----x--x
相减得:
666 <- rw-rw-rw-
(这个特殊情况仅出现在文件,因为文件[二进制文件除外]没有x执行权限)
所以,查看文件的umask时我们要特别注意是否有奇数位(x表示1)
umask + 数值 修改当前用户的umask 如:umask 044
不过这样设置的umask会在用户重新登录的时候恢复原来的值,我们可以把修改的umask保存在~/.bashrc
***************************
vim ~/.bashrc
在文件末尾添加umask 044
保存退出
重新登录用户则保存成功
***************************
案例:
刘关张三兄弟都属于shu这个附加用户组,有一个共享目录,叫shuguo,三兄弟在shuguo下所创建的文件,相互之间可以修改.其他人无任何权限,三兄弟创建的文件,只能自己删除.(利用umask值默认设置权限)
groupadd shu
useradd -G shu liubei
useradd -G shu guanyu
useradd -G shu zhangfei
mkdir shuguo
chgrp shu shuguo/ /*shuguo目录所属组改成shu*/
chmod g+s shuguo/ /*使刘关张创建的文件属于shu*/
chmod o+t shuguo/ /*使刘关张创建的文件只能自己删除*/
chmod g+w shuguo/ /*使刘关张可以修改和执行shuguo下的文件*/
umask 006
以上是关于Linux学习-umask详解的主要内容,如果未能解决你的问题,请参考以下文章