无论谁添加/编辑目录中的文件,都保持目录的所有权

无论谁添加/编辑目录中的文件,都保持目录的所有权

我们团队共享一个开发目录。每次用户添加文件时,所有权都会更改为该用户。有没有办法确保目录中添加的文件的所有者始终保持不变?

答案1

如果您使用 Samba 通过 SMB 访问目录,则可以使用force user中的参数smb.conf。否则,您无法强制所有者但是,如果问题仅仅是用户无法编辑目录中彼此的文件,您可以通过执行以下操作来修复它:

  1. 让每个人都使用 umask 002(或 007)。检查/etc/profile/etc/login.defs。这将确保文件是组可写的。
  2. 使目录(及其所有子目录)归特定团体每个团队成员都是其中的一员。
  3. 使目录(及其所有子目录)成为 setuid 组(“ chmod g+s” )。这是 Unix 的一个特殊功能,它将使所有新文件归属于公共组。

答案2

不可以,但是您可以将目录设置为 setgid,以便目录的组所有者拥有在其中创建的任何文件的组所有权。

答案3

这个问题的标准解决方案——在多个用户之间共享版本控制存储库——是让每个人都通过以专用用户身份运行的服务器与存储库交互,而不是通过文件系统。正如您所发现的,使用文件系统是有问题的。

您尚未指定要使用的版本控制系统,但使用 Suversion 或 git 时,您会在系统上设置专用用户,然后让开发人员通过 ssh 访问存储库。使用 Subversion 时,您可以使用svn+sshurl;svn手册

git 的默认行为是使用 ssh 访问“远程”存储库。我将“远程”放在引号中,因为在您的情况下,您将在本地系统上运行“服务器”。

相关内容