UNIX - 如何授予用户对其他用户的权限,这样我就不需要 sudo 或输入密码了?

UNIX - 如何授予用户对其他用户的权限,这样我就不需要 sudo 或输入密码了?

我有 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 的密码,但顺便说一下,我并没有密码,或者直接取消它

那么我该如何配置用户git对用户拥有类似 root/admin 的权限用户 无需在命令前提供任何密码或 sudo?就像 root 一样

  • 如果有办法只允许来自git用户

提前致谢

答案1

根据要求,这是关于群组的一些教程。希望这不是太基础的内容。

默认情况下,大多数用户帐户也属于同名组。要确定帐户属于哪些组,请使用 groups 命令。

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

列出的第一个是主要组,并且将是用户创建的任何文件的默认组所有者。它在 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”集。我上面展示的测试文件只允许 root 组进行读取访问。如果您想授予该组的所有成员写入权限,则必须使用 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

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

答案2

如果您想授予某个用户(例如示例中的 git)访问另一个用户空间的权限,请将他们放在同一组并相应地设置组权限。

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

相关内容