首页 > 试题广场 >

(umask 022;touch a) 等价...

[单选题]
(umask 022;touch a) 等价于 (touch a; chmod XXX),请问XXX用哪个数字表示
  • 644
  • 755
  • 022
  • 700

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


umask在英文中是屏蔽的意思,那么
umask=022
指屏蔽文件的022权限,到底屏蔽了什么?将这个八进制数用二进制表示
000010010
换算成字母是
----w--w-
发表于 2020-02-27 12:55:17 回复(0)
umask  命令只对目录生效,对单个文件无效,所以touch创建文件的默认权限644不受影响
发表于 2020-02-08 17:32:13 回复(1)
umask 与 chmod 命令设定刚好相反,umask用的是“补码”,而chmod设置的是文件的权限码。
我们规定数字 4 、2 和 1表示读、写、执行权限,即 r=4,w=2,x=1。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6
对于文件而言,系统不允许创建之初就对其赋予可执行权限,因此文件权限的最高限定是6,目录为7。将最高可选值减去umask中的值即是默认文件创建权限。因此当umask为022时,默认创建文件的权限为644,而默认创建目录的权限为755。 
发表于 2020-04-06 23:04:42 回复(0)
unmask的值为022,表示反码。反码022为root账户,创建文件权限默认权限值为rwx-rwx-rwx(777),减去022,755
发表于 2019-12-09 16:52:17 回复(7)
注意创建文件权限默认权限值不是777,目录默认是755,文件默认是644,所以umask=022,文件a权限是644 无疑!答案选A!
编辑于 2020-04-29 12:05:07 回复(0)

如果创建的是目录,则使用777-umask值,如root的umask=022,则root创建目录时该目录的默认权限为777-022=755,而普通用户创建目录时,权限为777-002=775.

如果创建的是普通文件,在Linux中,深入贯彻了一点:文件默认不应该有执行权限,否则是危险的。所以在计算时,可能会和想象中的结果不一样。如果umask的三位都为偶数,则直接使用666去减掉umask值,因为6减去一个偶数还是偶数,任何位都不可能会有执行权限。如root创建普通文件时默认权限为666-022=644,而普通用户创建普通文件时默认权限为666-002=664。

如果umask值某一位为奇数,则666减去umask值后再在奇数位上加1。如umask=021时,创建文件时默认权限为666-021=645,在奇数位上加1,则为646。

发表于 2020-09-04 23:25:44 回复(0)
注意文件创建时候默认不执行,最后一位默认为0,默认权限为666,掩码为022,做异或操作得644
发表于 2021-03-06 22:05:08 回复(0)
       (octal 0666) when creating a new file, the permissions on the resulting file will be:

           S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH

       (because 0666 & ~022 = 0644; i.e., rw-r--r--).

发表于 2020-09-12 11:58:07 回复(0)
文件的最大默认权限是 666,换算成字母就是 "-rw-rw-rw-",umask 的值是 022,换算成字母为 "-----w--w-"。把两个字母权限相减,得到 (-rw-rw-rw-) - (-----w--w-) = (-rw-r--r--),这就是新建文件的初始权限。
目录的默认权限最大可以是 777,换算成字母就是 "drwxrwxrwx",umask 的值是 022,也就是 "-----w--w-"。把两个字母权限相减,得到的就是新建目录的默认权限,即 (drwxrwxrwx) - (-----w--w-) = (drwxr-xr-x)。
发表于 2020-03-26 23:40:29 回复(0)

第一步,umask 022;是没用的,创建出来的文件权限默认是644,
第二步,创建一个文件夹是644的权限,是和第一步一样的效果
发表于 2020-01-17 13:07:16 回复(0)