umask命令

先来看一下下图的例子,
umask命令
先用 touch 11.txt 命令创建一个文件 11.txt ,然后用命令 ls -l 11.txt 查看,可以看到文件11.txt 默认的用户权限是 rw-r--r-- ,即 644 。再用命令 mkdir 123 创建一个目录 123 ,用命令 ls -ld 123 查看,可以看到目录 123 默认的用户权限是 rwxr-xr-x ,即 755 。
这个到底是怎么回事呢?为什么创建文件是 644 ,创建目录是 755 ?
实际上,系统有一个概念,叫 umask ,输入命令 umask ,回车,见下图,
umask命令
命令执行完毕的结果是 0022 ,说明系统中 root 用户的 umask 值就是 0022 ,通过这个值就可以确认文件和目录默认的用户权限是什么。
先来看看怎么更改 umask 的值,见下图,
umask命令
输入命令 umask 002 ,全称应该是 umask 0002 ,一般这个值最前面的 0 是可以省略的。然后再次用命令 umask 查看,结果就变成 0002 了。
现在用 touch 命令来创建一个文件 22.txt ,用 mkdir 命令创建一个目录 234 ,见下图,
umask命令
可以看到文件 22.txt 的默认用户权限变了,为 rw-rw-r-- ,即 664 。而目录 234 的默认用户权限变为 rwxrwxr-x ,即 775 。
现在我们来找一下规律,见下方表格,
umask命令
可以发现规律,umask 中的 0 对应文件用户权限中的 6 ,对应目录用户权限中的 7 ;umask 中的 2 对应文件用户权限中的 4 ,对应目录用户权限中的 5 。
先来了解一个规律,为什么目录用户权限一定会有 x 权限?
一般,我们要查看一个目录的时候,一定要先进去这个目录才可以,而 x 为可执行的意思,其实就是可以进入的意思,所以创建的目录一定要有这个权限。如果没有这个 x 权限,我们连浏览目录都不行。这边和文件是不一样的,文件有了 x 权限才可以执行,而目录有了 x 权限才可以浏览。
所以,上面的规律用公式表示就是:
777 - 022 = 755 ; 666 - 022 = 644 。
777 - 002 = 775 ; 666 - 002 = 664 。
但真的就是这样吗?答案是不一定的,比如我们用命令 umask 003 来执行查看一下,见下图,
umask命令
先用 ls 命令查看一下目录和文件,再用命令 rm -rf 11.txt 2.txt 22.txt 来删除掉 11.txt、2.txt、22.txt这三个文件,重新用命令 touch 1.txt 创建一个文件 1.txt ,再用命令 ls -l 1.txt 来查看,可以看到 1.txt 的用户权限是 rw-rw-r-- ,即 664 。
我们再来用公式测算一下 666 - 003 = 663 ,这个结论显然是不对的。那我们应该怎么得出规律呢?数字只是代表,回归到权限代码本身来看一下,
666 = rw-rw-rw- , 003 = -------wx , (rw-rw-rw-) - (-------wx) = rw-rw-r-- , 即 664 。
777 = rwxrwxrwx , (rwxrwxrwx) - (-------wx) = rwxrwxr-- ,即 774 。
来看一下目录的权限,见下图,
umask命令
目录 11 用户权限就是 rwxrwxr-- ,即 774 。

综上所述,umask 命令是用来决定默认的文件和目录的用户权限的。判断新建的目录和文件的用户权限用的是减法,这个减法不能用数字减,而要用九位权限的代码去减,这样得出的结论才是正确的。需要注意的是,- 减去 r 、w 、x 得出的结果还是 - 。

转载于:https://blog.51cto.com/13503302/2053860

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值