私の問題を理解するために、現在の設定は次のとおりです。
利用者と一緒に働いている」金持ち”、ユーザー$GOPATH
は/foo/go/
。
このユーザーはsudo'ersグループに属しています。
私はGoプロジェクトのgitディレクトリで作業しようとしています。 sudoを使用すると、ファイルを編集できます。問題は、vimでプロジェクトをビルドしようとしたり、gopath(たとえば:GoMetaLinter
)で何かを実行しようとすると、sudoを使用するため、rootユーザーのコンテキストで実行されることです。ユーザーがgopathを設定していません。
この問題を正しく解決する方法を本当に理解していません。私はlinterを使用するためにファイルを読み取り専用で開き、vimを使用してsudoと書き込みに戻しましたが、それは愚かであり、それが「正しい」ものではないことを知っています。 rootの代わりにローカルユーザーのコンテキスト/変数を使用するためにsudoを使用する正しい方法は何ですか?
答え1
sudo
セキュリティ上の理由から、環境変数は保存されません。これを上書きするには、次のようなものを追加します。
Defaults env_keep += "HOME GOPATH"
役に立つには、/etc/sudoers
保存したい環境変数をリストします。
https://stackoverflow.com/questions/8633461/how-to-keep-environment-variables-when-using-sudo#8633575追加のヒントを含めることができます。