local_umask=022是什么意思?

原文:http://bbs.chinaunix.net/thread-669631-1-1.html


请问local_umask=022是什么意思?是指什么的掩码?

原帖由  norman_lu 于 2005-12-15 15:58 发表
777-022=755
666-022=644
明白否!


umask决定目录和文件被创建时得到的初始权限
umask = 022时
新建的目录 权限是755 
文件的权限是 644

用umask命令查看或设置当前的umask

$ umask
000

$ umask 022

你可以改变一下umask,建立目录和文件,观察一下

还有,umask是unix操作系统的概念,vsftpd的local_umask借鉴了它


umask=022中"022"是八进制的写法,如果换成二进制是000010010

在unix中文件权限是三类用户,三种权限。三类用户分别是文件所有者user(u),文件所有者所在主群组group(g)、其它用户others(o),三种权限分别是起读read(r)、写write(w)、执行execute(x)。

如果一个文件的权限如下:所有者有读写的权限,群组有读和执行权限、其它用户有读权限,可以写成:
rw-r-xr--
其中前三位指明了所有者的权限、中间三位指明了组权限、最后三位指明了其它用户的权限。我们用ls -l可以看到文件权限详情,列出来的是10位,最前一位如果是d表示是子目录。
说回来,如果把这上面9位字母换成二进制数则是:
110101100
如果换成八进制是多少?

因此文件权限可以用9位二进制数表示。umask在英文中是屏蔽的意思,那么
umask=022
指屏蔽文件的022权限,到底屏蔽了什么?将这个八进制数用二进制表示
000010010
换算成字母是
----w--w-
指取消组的写权限、取消其它用户的写权限。
屏蔽这些权限后,剩下什么权限呢?用字母表示是:
rwxr-xr-x
用二进制数表示是:
111101101
你可以对比一下
000010010
可以知道屏蔽前后的换算关系。

在vsftpd的配置文件中,umask=022表示了上权后的文件被屏蔽的权限,另一句话说,就是上传的文件所具有的权限。

你可以找一点讲unix操作系统的书看看,写得比我好得多。

你可能感兴趣的:(local_umask=022是什么意思?)