gpt4 book ai didi

Linux——如何提前为新文件设置组权限

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:57 26 4
gpt4 key购买 nike

我想告诉Linux,在某个目录中创建的每个文件除了默认权限外,还应该有g+w。

我怎么说呢?我需要那个目录的粘性位,不是吗?(该目录已经有 drwsrwsr-x,我希望新文件能继承它,但显然它们没有...)

最佳答案

有几种与权限操作相关的机制:

  • umask 允许您禁用每个应用程序的权限位。它既不允许启用权限,也不允许按目录执行权限。它也不是全局设置。它是从父进程继承的每个进程属性。例如。您可以在 init 脚本中设置它的默认值,但是程序(尤其是守护进程)可能会覆盖它们的 umask
  • sticky bit 限制目录访问,以便该目录中的文件只能由 root 或目录所有者或文件所有者取消链接或重命名。
  • setgit bit on directory 强制在该目录中创建的任何新文件将其组设置为在目录中设置的同一组。它允许覆盖组所有者,但不允许覆盖权限。
  • bsdgroupsgrpid 挂载选项为所有目录启用 setgit bit 行为,即使 setgit bit 不是设置。
  • ACL(访问控制列表)允许您为目录或文件设置每个用户和每个组的权限。当在该目录中创建新文件时,它们也从父目录继承。但是,ACL 权限屏蔽了传统的 POSIX 权限,这些权限由文件创建者及其 umask 设置,因此您不能继承超过文件创建者允许的权限。

除了umask 之外,所有这些机制都是特定于linux 的。参见 this question有关 setgit bitACL 的一些详细信息。

我想这些都不能直接解决您的问题。你可以做什么:

  • 配置创建这些文件的程序,以创建具有足够权限的文件。例如,如果他们使用 0777 权限创建它们(或可以这样配置),将 umask 设置为 000 应该就足够了。请参阅@KasunRathnayaka 的回答。
  • 如果不行,您可以使用bindfs带有 --create-with-perms 和相关选项的工具。它允许将目录挂载到另一个目录,并在创建或修改文件时覆盖权限和用户/组所有者。参见 manual page .

关于Linux——如何提前为新文件设置组权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31557378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com