umask怎么在linux系统中使用-创新互联

umask怎么在linux系统中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好网站设计、成都网站建设服务,我们努力开拓更好的视野,通过不懈的努力,创新互联建站赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,成都小程序开发,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。

1 umask 是什么

当我们登录系统之后创建一个文件是会有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask用于设置用户创建文件或者目录的默认权限,umask设置的是权限的“补码”,而我们常用chmod设置的是文件权限码。一般在/etc/profile,HOME/.bashprofile或者HOME/.profile中设置umask值。

2 umask是用来做什么的

默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认 权限是755(7-0,7-2,7-2),可以用ls -l验证一下, 现在应该知道umask的用途了吧,它是为了控制默认权限的。

[root@bogon test]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon test]# umask
0022
[root@bogon test]# touch a.txt
[root@bogon test]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jul 3 00:40 a.txt
[root@bogon test]# mkdir b
[root@bogon test]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jul 3 00:40 a.txt
drwxr-xr-x. 2 root root 6 Jul 3 00:41 b

从上面可以看到, root 的umask是022(第一个0 代表特殊权限位,这里先不考虑), 创建的文件默认权限是644,创建的目录是755。

3 基本权限讲解

讲解umask的使用之前, 需要先讲解下文件的基本权限

linux文件权限

 rwx
文件 可以查看文件内容 可以修改文件 可以把文件启动为一个运行的程序
目录 可以ls查看目录中的文件名 可以在目录中创建或者删除文件(只有w权限没法创建,需要x配合) 可以使用cd 进入这个目录ls-l显示目录内文件的元数据的信息

4 umask计算权限

对于文件和目录来说, 大的权限其实都是777,但是执行权限对于文件来说,很可怕,而对目录来说执行权限是个基本权限。所以默认目录的大权限是777,而文件的默认大权限就是666。

对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111),022权限二进制码为(000)(010)(010)。

  • 所有权限二进制的1:代表有这个权限

  • umask二进制1:代表要去掉这个权限,不管你原来有没有权限,你最终一定没有这个权限。

  • umask二进制的0:代表我不关心对应位的权限,你原来有权限就有权限,没有就没有, 我不影响你。

umask为002的文件默认权限计算方法

 所有者 r所有者 w所有者 x所在组 r所在组 w所在组 x其他 r其他 w其他 x 
所有权限777111111111
umask掩码002000010010
计算后的值111101101

umask为002的目录默认权限计算方法

 所有者 r所有者 w所有者 x所在组 r所在组 w所在组 x其他 r其他 w其他 x 
所有权限666110110110
umask掩码002000010010
计算后的值110100100

umask为023的目录默认权限计算方法

 所有者 r所有者 w所有者 x所在组 r所在组 w所在组 x其他 r其他 w其他 x 
所有权限777111111111
umask掩码023000010011
计算后的值111101100

umask为023的文件默认权限计算方法

 所有者 r所有者 w所有者 x所在组 r所在组 w所在组 x其他 r其他 w其他 x 
所有权限666110110110
umask掩码023000010011
计算后的值110100100

上面就是一个umask的正常计算过程,但是这样实在是太麻烦了。我们使用如下的简单的方法快速计算。

  1. 对于目录,直接使用777-umask即可,就得到了最终结果。

  2. 对于文件,先使用666-umask。

    1. 如果对应位上为偶数:最终权限就是这个偶数值。

    2. 如果上面的对应为上有奇数,就对应位+1。

上面的这个方法计算是非常方便的, 为何得到奇数要+1呢。

文件的大权限是666,都是偶数,你得到奇数,说明你的umask有奇数啊,读为4,写为2,都是偶数,说明你有执行权限的。

就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限。所以结果加1。

5 umask的修改

umask 的修改分2中, 临时修改的和永久修改的

临时修改:

[root@bogon test]# umask 023
[root@bogon test]# umask
0023
[root@bogon test]#

永久修改:

可以编辑以下文件 添加umask=022。

交互式登陆的配置生效:

/etc/profile < /etc/profile.d/*.sh < ~/.bash_profile < ~/.bashrc

非交互登陆的配置生效:

~/.bashrc < /etc/bashrc  < /etc/profile.d/*.sh

6 常用umask

[root@bogon test]# umask 002
[root@bogon test]# umask
0002
[root@bogon test]# umask 022
[root@bogon test]# umask
0022

看完上述内容,你们掌握umask怎么在linux系统中使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联成都网站设计公司行业资讯频道,感谢各位的阅读!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:umask怎么在linux系统中使用-创新互联
分享网址:http://myzitong.com/article/dpsdoe.html