我使用的是 umask 077。“其他”和“组”没有任何权限,但用户无法执行文件/目录。为什么 umask 077 不允许所有者执行文件/目录?
答案1
这umask值将用于适当修改默认值掩码对于文件权限(基本权限 0666)和掩码对于目录/文件夹权限(基本权限 0777)。
有效的掩码和掩码价值将通过扣除计算umask值(八进制计算)。
因此umask0022 将导致掩码得到值 0644 (即 0666 - 0022)掩码将是 0755(即 0777 - 0022)。
这umask0077 阻止创建具有任何访问权限的文件,不仅是世界(由最后的八进制数字表示),而且还有你的小组成员(用倒数第二位八进制数字表示)。
参考:
答案2
当您使用umask
077仅有的用户具有读取、写入和执行权限。用户肯定能够打开(“执行”)目录(有关目录必须可执行的原因的更多信息,请参阅在我的回答中)。但是,文件必须始终通过输入 使之可执行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
(如上所述),我们可以进一步研究。