作为一个Linux爱好者,我可以很好地管理自己的文件…但现在我和另外两个人合作,这成了一个问题。我试过创建他们的帐户,并将他们的主要组设置为我放在文件上的chgrp,但除非我将他们自己更改为用户,否则他们不会获得编辑权限。然后我的游戏服务器最终收回了所有权。
所以对于一个特定的例子,假设我想创建一个新用户,johnny。我希望他只访问这里显示的betonquest子文件夹…他还可以编辑文件夹下的文件夹和文件。关于这里使用的命令有什么提示吗?
linux - 如何允许多个用户管理linux文件-LMLPHP

最佳答案

术语:文件有所有者和组(也称为组所有者)。它被称为文件组,而不是chgrp。chgrp(1)是用于更改文件组的命令。
如何设置对目录树的共享访问
让每个人都将umask设置为002,这样新创建的文件和目录就具有rwxrwxr-w权限(只有为其他文件写的权限被精心设计的程序在创建文件时使用的0777屏蔽掉)。
将所有用户添加到该项目的组中
可选:将每个人的主要组设置为共享组
如果该组不是所有用户的主要组,则将所有目录设置为setgid,以便其中新创建的文件和目录将继承目录的gid,而不是用户的主要组。(不过,新创建的目录不会自动设置为gid,所以这是您将每个人的主要组设置为共享组的想法的优势所在。)
IIRC,只有文件的所有者才能chgrp它。一旦设置好了,它就应该继续工作,但您可能需要sudo或其他东西来设置初始设置。
更细粒度的控制:
如果您希望不同的用户集访问不同的目录,最好的选择是acl。我没有使用它们,但它们允许您向每个文件/目录添加允许用户的列表。这比为每个不同的用户组合使用不同的组要方便得多。例如

chgrp -R some_subdir  joe_bill_dave    # Use ACLs instead of this mess
chgrp -R other_subdir bill_dave

更现代的方法:版本控制
尽管如此,您可能希望使用git这样的版本控制系统来管理更改。人们可以进行更改,提交它们,然后将它们推送到服务器上的repo。在服务器上设置一个只能运行git命令而不能运行登录shell的特殊帐户,并向其中添加用户的ssh公钥。
与旧式unix相比,vcs是一种更现代的允许多人修改内容的方式,它允许多个用户使用写访问权限。

关于linux - 如何允许多个用户管理linux文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33771777/

10-12 07:21
查看更多