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

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

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

答案1

umask值将用于适当修改默认值掩码对于文件权限(基本权限 0666)和掩码对于目录/文件夹权限(基本权限 0777)。

有效的掩码掩码价值将通过扣除计算umask值(八进制计算)。

因此umask0022 将导致掩码得到值 0644 (即 0666 - 0022)掩码将是 0755(即 0777 - 0022)。

umask0077 阻止创建具有任何访问权限的文件,不仅是世界(由最后的八进制数字表示),而且还有你的小组成员(用倒数第二位八进制数字表示)。

参考:

答案2

当您使用umask077仅有的用户具有读取、写入和执行权限。用户肯定能够打开(“执行”)目录(有关目录必须可执行的原因的更多信息,请参阅在我的回答中)。但是,文件必须始终通过输入 使之可执行chmod u+x myfile;它们永远不会自动执行。umask此答案中提供了有关 的一些更有用的信息:

出现问题的原因可能是您输入的值略有错误,导致不同的 umask,或者该值未永久设置。如果您umask 077在终端中输入,则该值仅在终端的该会话中有效;要使其对您的用户永久有效,只需将其添加umask 077到您的 中~/.profile。 的系统默认设置为umask/etc/login.defs用过的/etc/profile。另请参阅的联机帮助页pam_umask,它是处理分配的 pam 模块umask

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

1)对于文件夹创建mkdir doc检查是否stat 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)对于文件创建touch 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

077umask将提供所示的权限,但如果在正确设置后仍然遇到权限问题umask 077(如上所述),我们可以进一步研究。

相关内容