这不一定是直接的计算机科学问题,但其密切相关。
有什么办法可以做到这一点。
我正在使用 Z Shell zsh。
我想设置,以便每当我在文件夹中
〜/废话
我创建的所有内容均使用权限 770(我和组的所有访问权限)。基本上,我在该文件夹中执行的任何操作都应具有这些权限。
此外,该文件的组也应以相同的方式进行。但这与权限的流程相同。
任何人?
答案1
发现了一篇关于这个主题的好文章:什么是“umask”?如何设置?
定义
umask
新文件将获得的权限 - 或者更好的是:它将不会获得的权限。[...]
如果您想要
umask
为特定目录定义(例如:您与同事一起使用的目录的组写权限),则使用 umask 命令时您会感到紧张,因为它对所有目录始终有效。这个问题的解决方案是设置一个默认 ACL以下命令确保 中的所有新文件都
/home/shared/
具有为该组设置的所有权限(包括写权限):setfacl -d -m mask:007 /home/shared/
您还应该为目录设置 sgid 位并使用 chgrp 选择所需的组:
chgrp the_team /home/shared/ chmod g+s /home/shared/
如果
/home/shared/
已经包含子目录,您还必须更改其权限。提示:所有提到的命令都知道 -R 选项。
答案2
放
umask 006
这~/.bash_profile
与默认值 022 不同。还设置
chgrp staff # or some other group you pick
chmod g+s blah
启用目录上的粘性位。现在您在其下创建的所有内容都应保留模式和组。
答案3
不要忘记,文件系统必须使用'访问控制列表' 标志以便使用访问控制列表。否则 setfacl 命令将返回 '不支持该操作“”。
例如,这是我的 fstab 文件 (/etc/fstab) 中的条目:-
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/sdb1 /media/DataDrive ext3 acl 0 0
答案4
umask
将更改您将创建的每个文件和目录的默认权限,但如果您需要此行为仅针对给定的目录,您应该查看访问控制列表 ACL,请参阅:man acl(5)
了解更多信息。