如何在 Unix/Linux Ubuntu 中设置文件夹权限

如何在 Unix/Linux Ubuntu 中设置文件夹权限

这不一定是直接的计算机科学问题,但其密切相关。

有什么办法可以做到这一点。

我正在使用 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)了解更多信息。

相关内容