rootアカウントでroot以外のユーザー設定を使用する

rootアカウントでroot以外のユーザー設定を使用する

端末を使用してsuroot権限でコマンドを実行するときは、sudoそのユーザーのホームディレクトリに保存されているsu「root以外のユーザー」(私が電話したか送信者)の設定を適用できますか?sudo

たとえば、/etc/some_fileedit config filesを使用したいとし、vimvim設定ファイルがにあるとします/home/myuser/.vimrc。コマンドラインを実行し、と入力すると、sudo vim /etc/some_file「my」が美しく、うまく設定されるようになります。vim表示される内容です。しかし、私が得たのはvimプラグインなどがない醜い基本構成です。

/ rootにあるrootユーザーファイルの代わりに自分のユーザープロファイルを作成またはsu使用できますか?sudo

答え1

使用sudo -E環境を保護する:

$ export FOO=1
$ sudo -E env | grep FOO
FOO=1

これにより、他の環境変数が保存されるため、起動したのと$HOME同じ構成ファイルがrootとして実行されているプログラムにアクセスできます。

更新sudoersして無効にすることができます。env_reset設定は通常、デフォルトで有効になっているすべての環境変数を消去します。sudo -Eそこで使用される機能を有効にする必要があるかもしれません。sudoers関連する可能性があるいくつかの異なる設定があります。env_keepデフォルトでは、保持される特定の変数を指定できる設定と、env_remove常に削除される変数を宣言する設定があります。sudo sudo -Vを使用して、どの変数が保持または維持されていないかを確認できます。

変更できない場合のsudoers他のオプションは、環境を明示的に提供することです。

sudo env HOME=$HOME command here

これを自動的に実行するようにシェルエイリアスを作成できるため、直接入力する必要はありません。

いずれにせよ、これを行うと、望ましくない副作用が発生する可能性があります。たとえば、ホームディレクトリにファイルを作成したいプログラムを実行すると、そのファイルはrootとして生成され、通常のユーザーはこれを実行できません。彼らに手紙を書こうとします。

特別な場合は、システムの唯一のユーザーである場合は、システム全体のユーザーvimにすることもできます。.vimrc/etc/vimrc

答え2

HOME環境変数を保存するには、sudoを設定します。

visudosudo設定を編集するには実行してください。オプションがalways_set_homeオフになっていて、リストにあることをHOME確認してください。env_keep次の行を追加します。

Defaults !always_set_home
Defaults env_keep+="HOME"

Defaults always_set_home行があるかのように行を削除します。

関連情報