了解 sudo -u -H 的含义

了解 sudo -u -H 的含义

我正在尝试安装 gitlab本指南在 Ubuntu 14.04 Server 上。还值得一提的是,我使用的是 http 代理。我遇到的问题尤其出现在以下行:

sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-9-stable gitlab

我已经hhtp_proxy设置了环境变量,但根据我所做的一些阅读,您需要通过发出以下命令来独立设置 git 的代理详细信息:

git config --global http.proxy http://some.proxy.com:8080

因此,我想尝试通过该集合来理解sudo -u <user> -H <command>语法。

从 sudo 手册页中读取 -u -H 标志,-u 表示该命令将以 git 用户身份执行。-H 将 HOME 环境变量设置为目标用户的 homedir。这一切都很合理,因为 git 用户应该拥有 gitlab 服务。

git clone <url to repo> -b 6-9-stable gitlab将会拉取指定 URL 处的存储库,将其分配给名为 6-9-stable 的新分支,并将存储库的所有内容放在 gitlab 目录中。

问题是当我运行时:

`sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-9-stable gitlab

连接失败并显示以下输出:

Cloning into 'gitlab'...
fatal: unable to access 'https://gitlab.com/gitlab-org/gitlab-ce.git/': Failed to connect to gitlab.com port 443: Connection timed out

我也尝试过放弃s在 https 中,因为我知道端口 443 与 SSL/TLS 同义,但我仍然得到相同的输出......我不太明白。

但是如果我只是运行:

git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-9-stable gitlab

repo 下载正常。现在我知道我可以将其移动到 ~/git 并执行适当的 chmod / chown,但我真的很想了解为什么我会看到这种行为以及如何使用sudo -u <user> -H <command>语法获得所需的结果。

提前谢谢了 :)

答案1

显然,该命令git config --global http.proxy http://some.proxy.com:8080只对每个用户有效。

如果您使用git clone与用户的通话git,你必须使用你的git config电话与用户git也一样。

相关内容