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

zan*_*ona 5 unix permissions git hook

我有 2 个用户有问题

git用户 - 用于 gitosis - 所以它是一个无密码用户,只能通过 root 访问...

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

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

git@domain.me:~/respositories# cd /home/user/websites/domain.com
Run Code Online (Sandbox Code Playgroud)

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

git@domain.com:/home/user/websites/domain.com#  git pull
Run Code Online (Sandbox Code Playgroud)

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

error: cannot open .git/FETCH_HEAD: Permission denied
Run Code Online (Sandbox Code Playgroud)

所以当我要求执行这样的操作时,它会请求 git 的密码,顺便说一句,没有任何密码,或者立即取消它

所以,我怎么可以配置用户的git有像在用户root /管理员权限的用户 ,而不需要提供命令之前任何密码或sudo?就像如果它是根一样

  • 如果有一种方法可以只允许从git用户的特定命令,那就更好了

提前致谢

Chr*_*rel 5

根据要求,一些关于团体的教程。希望这不是太初级。

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

# groups root
root : root bin daemon sys adm disk wheel
Run Code Online (Sandbox Code Playgroud)

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

# touch testfile
# ls -l testfile
-rw-r--r--  1 root root 19 Jan 29 08:37 testfile
Run Code Online (Sandbox Code Playgroud)

要将用户添加到组,请使用 usermod,如图所示。您给它的小写“-g”标志更改了主要组。使用“-G”和“-a”标志只更改次要的可能会更好。即,将 git 用户放入 luddico 的组。

# usermod -G luddico -a git
# groups git
git : git luddico
Run Code Online (Sandbox Code Playgroud)

这应该允许 git 访问 luddico 组拥有的任何文件,并具有适当的组权限。组权限是 ls 中列出的第二个“rwx”集。我上面显示的测试文件只允许根组进行读取访问。如果您想授予该组的所有成员写访问权限,则必须为此使用 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
Run Code Online (Sandbox Code Playgroud)

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