为了理解我的问题,这是我当前的设置:
我正在与用户合作“富”,该用户有一个$GOPATH
as /foo/go/
。
该用户位于 sudo'ers 组中。
我正在尝试在 go 项目的 git 目录中工作。如果我使用 sudo 我可以编辑该文件,问题是如果我尝试从 vim 构建我的项目,或者从我的 gopath 运行任何内容(例如:GoMetaLinter
),那么它会在 root 用户的上下文中运行,因为我使用了 sudo,但该用户没有设置 gopath。
我真的不明白如何正确解决这个问题。我已经恢复以只读方式打开文件以使用我的 linter,然后使用 vim 进行 sudo 和写入,但这很愚蠢,而且我知道这不是“正确的”。使用 sudo 以便使用本地用户上下文/变量而不是根的正确方法是什么?
答案1
sudo
出于安全考虑,不会保留环境变量。要覆盖它,添加类似的内容
Defaults env_keep += "HOME GOPATH"
应该/etc/sudoers
会有所帮助,列出您希望保留的环境变量。