为什么umask 077不允许用户执行文件/目录?

我正在使用umask 077。“其他”和“组”没有任何权限,但用户无法执行文件/目录。 为什么umask 077不允许所有者执行文件/目录?

当您使用077的umask只有用户具有读取,写入和执行权限。 用户肯定能够打开(’执行’)目录(有关为什么目录必须在我的答案中可执行的详细信息,请参阅此处 )。 但是,通过输入chmod u+x myfile ,必须始终使文件可执行; 它们永远不会自动执行。 关于umask一些更有用的信息在这个答案中给出:

  • 什么是“umask”,它是如何工作的?

您可能遇到的问题是,您可能稍微错误地输入了值,这导致了不同的umask,或者该值未被永久设置。 如果您在终端中输入umask 077 ,它将仅适用于该终端的会话; 只需将umask 077添加到~/.profile即可使用户永久使用。 umask的系统默认设置位于/etc/login.defs ; 它曾经/etc/profile 。 另请参见pam_umask的联机帮助页,这是一个处理umask分配的pam模块。

以下示例来自umask 077的成功设置:

1) 对于文件夹创建 :使用stat doc mkdir doc检查的mkdir doc给出了正确的权限和“可执行”文件夹:

 File: `doc' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 801h/2049d Inode: 6425268 Links: 2 Access: (0700/drwx------) Uid: ( 1000/ mike) Gid: ( 1000/ mike) Access: 2012-09-12 11:33:01.236675420 +0100 Modify: 2012-09-12 11:33:01.236675420 +0100 Change: 2012-09-12 11:33:01.236675420 +0100 Birth: - 

2) 对于文件创建 :使用stat new检查stat new的权限给出了正确的权限; 使用chmod +x时,该文件只能执行:

 File: `new' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 6303902 Links: 1 Access: (0600/-rw-------) Uid: ( 1000/ mike) Gid: ( 1000/ mike) Access: 2012-09-12 11:34:58.272676270 +0100 Modify: 2012-09-12 11:34:58.272676270 +0100 Change: 2012-09-12 11:34:58.272676270 +0100 

一个077的umask将给出显示的权限,但是如果在正确设置umask 077后仍然存在权限问题(如上所述),我们可以进一步研究它。

umask值将用于适当地修改文件权限的默认fmask (基本权限0666)和目录/文件夹权限的dmask (基本权限0777)。

将通过减去umask值(八进制计算)来计算有效的fmaskdmask值。

因此, umask 0022将导致fmask获得值0644 (即0666-0022 ),而dmask将为0755(即0777-0022)。

umask 0077防止创建文件,不仅可以访问世界(由最终的八进制数字表示),还可以访问您的组成员 (由倒数第二个八进制数字表示)。

参考:

  • 的umask
Interesting Posts