ローカルユーザー$ GOPATHを使用するための正しいsudoの使い方を学びます。

ローカルユーザー$ GOPATHを使用するための正しいsudoの使い方を学びます。

私の問題を理解するために、現在の設定は次のとおりです。

利用者と一緒に働いている」金持ち”、ユーザー$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追加のヒントを含めることができます。

関連情報