目录中的所有文件都将具有 770 和 git:www-data (Linux)

目录中的所有文件都将具有 770 和 git:www-data (Linux)

我可以以某种方式指定:

  • 在一个目录仓库.git
  • 全部文件将总是
  • 模式770
  • git:www-dat所有权:集团权?

答案1

权限 - 使用 ACL 选项所有权挂载 - 您正在查看 setuid 和 setgid 位...http://en.wikipedia.org/wiki/Setuid

以下是您正在尝试执行的操作的一个示例:http://www.linuxquestions.org/questions/linux-desktop-74/applying-default-permissions-for-newly-created-files-within-a-specific-folder-605129/

答案2

如果您可以强制在此目录中创建文件的应用程序以 umask 007 运行,并以无权限限制的方式创建文件,并以组www-data作为其有效组或补充组运行,那么您需要做的就是chmod g+s repository.git。否则,您不能这样做确切地您所要求的。

但是,如果您将目录本身设为所有者,git:www-data并将模式设为 770,则只有git用户和www-data组才能访问目录中的文件。即使目录中的文件是世界可读的,其他用户也无法访问它们,除非它们在其他地方被硬链接,或者您将目录的描述符交给他们(这几乎必须故意这样做)。

接下来是使文件可组写入的问题。如果文件系统具有访问控制列表已启用。对于 ext2/ext3/ext4/reiserfs,请确保使用选项安装acl。安装 ACL 命令行工具(例如,您需要aclDebian 或 Ubuntu 上的软件包)。

chmod 770 repository.git
chown git:www-data repository.git
setfacl -m user:git:rwx -m group:www-data:rwx repository.git
setfacl -d -m user:git:rwx -m group:www-data:rwx repository.git

我认为这些文件最终不会是可执行文件,除非应用程序将它们创建为可执行文件。我不知道如何解决这个问题。

相关内容