UNIX – 如何给予另一个用户的用户权限,所以我不需要sudo或input密码?

我有2个用户的问题

git用户 – 用于gitosis – 所以这是一个没有密码的用户,它只能通过root访问…

用户用户 – 我的文件所在的位置

所以我想要做的是给用户git权限导航到这样的luddico文件夹

[email protected]:~/respositories# cd /home/user/websites/domain.com 

然后在用户用户文件(任何文件/文件夹)内执行任何操作,例如这样我可以

 [email protected]:/home/user/websites/domain.com# git pull 

因为实际上面提到的动作,返回:

 error: cannot open .git/FETCH_HEAD: Permission denied 

所以当我要求这样的行动,它要求git的密码,这是没有任何btw,或立即取消

所以我怎么能configuration用户git有像root / admin权限的用户用户,而不需要在命令之前提供任何密码或sudo? 就好像它是根

  • 如果有办法只允许从git用户的特定命令,那将会更好

提前致谢

根据要求,一些小组的教程。 希望这不是太简单。

默认情况下,大多数用户帐户也是同名组的一部分。 要确定帐户是哪个组的成员,请使用groups命令。

 # groups root root : root bin daemon sys adm disk wheel 

列出的第一个是主组,并且将是用户创build的任何文件的默认组拥有者。 这在ls的输出中被列为第二个“root”条目。

 # touch testfile # ls -l testfile -rw-r--r-- 1 root root 19 Jan 29 08:37 testfile 

为了添加一个用户到一个组,你使用usermod如图所示。 你给它的小写“-g”标志改变了主组。 使用“-G”和“-a”标志可能会更好一些。 也就是说,把git用户放入luddico的小组中。

 # usermod -G luddico -a git # groups git git : git luddico 

这应该允许git访问luddico组拥有的任何文件,并具有适当的组权限。 组权限是ls中列出的第二个“rwx”组。 我上面显示的testing文件只允许根组读取访问。 如果你想给该组的所有成员写入权限,那么你必须使用chmod。

 # ls -l testfile -rw-r--r-- 1 root root 19 Jan 29 08:37 testfile # chmod g+w testfile # ls -l testfile -rw-rw-r-- 1 root root 19 Jan 29 08:37 testfile 

现在,根组中的任何人都可以读取或写入testing文件。 将相同的概念应用于Luddico的文件。

如果你想授予一个用户(如你的例子中的git)访问另一个用户的空间,把它们放在同一个组中,并相应地设置组权限。

如果您需要更复杂的访问控制列表function,则应查看getfacl(1)和setfacl(1)提供的POSIX ACL。