三国赵云 发表于 2005-12-15 15:35

local_umask=022是什么意思?

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

三国赵云 发表于 2005-12-15 15:45

022是一个什么样的权限?

norman_lu 发表于 2005-12-15 15:58

777-022=755
666-022=644
明白否!

wolfg 发表于 2005-12-15 20:30

原帖由 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借鉴了它

[ 本帖最后由 wolfg 于 2005-12-15 20:32 编辑 ]

三国赵云 发表于 2005-12-21 13:12

OK.谢谢两位。

jinxuan_zh 发表于 2008-12-27 12:39

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操作系统的书看看,写得比我好得多。

jinxuan_zh 发表于 2008-12-27 12:51

原帖由 norman_lu 于 2005-12-15 15:58 发表 http://bbs.chinaunix.net/images/common/back.gif
777-022=755
666-022=644
明白否!
其实这样相减计算不是很好的。
例如:
假设umask为003,如果使用默认属性相加减,则文件变成666-003,即-rw-rw-wx,这是不对的,文件本来就没有默认的x属性,不可能在这里出现的,所以,这个地方要特别的小心,最好就采用二进制方式进行AND与NOT计算,也可以使用符号方式计算。

wings619 发表于 2012-06-28 19:35

jinxuan_zh 发表于 2008-12-27 12:39 static/image/common/back.gif
umask=022中"022"是八进制的写法,如果换成二进制是000010010

在unix中文件权限是三类用户,三种权限。三 ...

赞详细解释!!:D

ulovko 发表于 2012-06-28 19:46

本帖最后由 ulovko 于 2012-06-28 19:47 编辑

# man vsftpd.conf
/umask
anon_umask
      The value that the umask for file creation is set to for
      anonymous users.NOTE! If you want to specify octal values,
      remember the "0" prefix otherwise the value will be treated as
      a base 10 integer!
      Default:077
local_umask
      The value that the umask for file creation is set to for local
      users.NOTE! If you want to specify octal values,remember the
      "0" prefix otherwise the value will be treated as a base 10 integer!
      Default:077

cjz9032 发表于 2014-11-19 18:48

jinxuan_zh 发表于 2008-12-27 12:51 static/image/common/back.gif
其实这样相减计算不是很好的。
例如:
假设umask为003,如果使用默认属性相加减,则文件变成666-003, ...
怎么会这样呢
我觉得他设计得挺好了
哪怕你用十进制算,6-3=3   权限是由124构成,显然这里减去了 1+2.即WX
页: [1]
查看完整版本: local_umask=022是什么意思?