困境:我正在处理的Linux程序应该:

  1. 在git+ssh://协议(使用git)上获取“软件包”。
  2. 在系统中安装该“软件包”。

为了使git+ssh工作,git需要查看我的钥匙。

对于“软件包”安装,该程序必须具有超级用户特权。

限制:该程序不应单独提升特权(呼叫sudo)。用户必须与sudo明确调用。 (当用户在开始以root登录时运行程序时,让我们忽略情况 - 假设他将正确设置密钥。)

因此,问题是:如何使用Sudo调用的程序中的用户键进行SSH访问?

有帮助吗?

解决方案

使用-i Identity_file SSH参数。要告诉Git使用适当的命令,您应该将git_ssh变量设置为将调用ssh -i“ $@”的文件。

如果您不能这样做,那么在执行Git Pull命令时,应该放弃特权。

sudo -u <original_user> git fetch git+ssh:// 

您可以使用$ {sudo_user} enviroment变量来找出原始用户是谁。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top