关于linux的umask命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于linux的umask命令相关的知识,希望对你有一定的参考价值。

谁给将将umask是怎么个设置文件权限? 特别是php内的umask 什么时候用到? 怎么个用法? umask=18的时候是怎么个意思? 百度了一大堆 没发现有用的信息!

umask分配权限是对某个用户或用户组从权限中减去某个权限,这个权限指的是用户在创建新文件是对新建文件的权限在Linux中权限可以用数字来表示r=4,w=2,x=1,其中r表示读权限、w表示写权限、x表示执行权限,一个用户或用户组的权限是通过这些数字相加来表示的,比如只有读写权限,则权限数字为4 + 2 = 6所以,一个用户的最大权限是4 + 2 + 1 = 7,如果想从用户权限中减去某个权限,就用umask命令比如umask 1 删除文件创建者对新建文件的执行权限如果是删除读写权限,则umask后面的数字应该是4 + 2 = 6通常umask后面的权限数字参数有3个权限位,每个权限位分别表示文件创建者、文件创建者所在用户组和其它用户比如umask 236 表示删除文件创建者对新建文件的写权限、删除文件创建者所在用户组对新建文件的写和执行权限、删除其它用户对新建文件的读和写权限这是Linux的umask命令的含义但是对于php里面的umask我就不清楚了,因为我对php也不熟悉 参考技术A 这是Linux中的umask函数

我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢?

umask是什么?

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。

如何计算umask值?
umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7。

该命令的一般形式为:umask nnn
其中nnn为umask置000 - 777。

我们只要记住u m a s k是从权限中“拿走”相应的位即可。下表是umask值与权限的对照表:
umask 文件 目录
--------------------
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
--------------------

如:umask值为022,则默认目录权限为755,默认文件权限为644。
参考技术B umask和文件权限是相反的-rwxrwxrwx,这个Linux文件的权限是777umask此时就是000总之umask+文件权限=777你这个umask=18赋值就错了,不可能到8的umask就是为一个新创建的文件赋予新的权限的函数,就这个功能 参考技术C umask 是屏蔽掉新文件或目录不应有的访问允许权限的掩码. 设置权限,你可能要的是chown,chmod,chgrp这些吧!

以上是关于关于linux的umask命令的主要内容,如果未能解决你的问题,请参考以下文章

关于linux的进阶命令用法之来自noob的小结

linux那个umask值是啥?

linux 命令 —— umask

linux命令:遮罩码umask

Linux命令之umask

Linux umask命令详解