我们有一个由我们团队共享的开发目录。 每次用户添加一个文件,所有权都会更改为该用户。 有没有办法确保在目录中添加的文件的所有者总是保持不变?
如果您使用Samba通过SMB访问目录,则可以在smb.conf使用force user参数。 否则,你真的不能强迫所有者 。 但是,如果问题只是用户不能在目录中编辑彼此的文件,您可以通过这样做来解决:
/etc/profile和/etc/login.defs 。 这将确保文件是可写组的。 chmod g+s ”)。 这是Unix中的一个特殊function,它将使通用组拥有所有新文件。 不,但是您可以创build目录setgid,以便目录的组所有者拥有在其中创build的任何文件的组所有权。
这个问题的标准解决scheme – 在多个用户之间共享版本控制库 – 是让每个人都通过一个作为专用用户运行的服务器而不是通过文件系统与存储库交互。 正如你发现的那样,使用文件系统是有问题的。
你没有指定你正在使用哪个版本控制系统,但是使用Suversion或者git,你可以在你的系统上设置一个专用的用户,然后让你的开发人员通过ssh访问版本库。 有了Subversion,你可以使用svn+ssh url; 在svn手册中有一些文档。
git的默认行为是使用ssh访问“远程”存储库。 我把“远程”放在引号中,因为在你的情况下,你将运行本地系统上的“服务器”。