web-dev-qa-db-ja.com

構成倫理(美学):/ etc vs $ HOME

わかりました、これはあまり具体的な質問ではないかもしれません、そしておそらく好みに左右されます、それでも私はこれを正しくするのに苦労しているのでここに行きます。

私は、コンピュータを持っています。このコンピューターにはLinuxが搭載されています(神に感謝します)。具体的にはArchLinux(awesome wmを使用)。私はこのコンピューターのシングルユーザーです。

グッドプラクティスとして、rootユーザーと日常使用のromeovsユーザーの2人のユーザーを設定しました。このように、必要な場合にのみ権限を使用します(たとえば、Sudoを使用)。

何年にもわたって、私は自分のソフトウェアスイートをポン引きして、このコンピューターにたくさんのアプリケーションを追加してきました。特に:vimgitmpcmuttcalcurseufw、.。

ここにこすりがあります:これらのアプリケーションの設定ファイルのどれを使用しますか?これらはすべて、/etcベースのグローバル構成ファイルを提供します。これは、すべてのユーザーとlocal~/.config(または、悲しいことに、~/)構成オプション。

これはより自然に感じたので、私は常にローカル構成セットアップを使用して作業しました。しかし、私が自分のコンピューターに慣れてくると、これはどういうわけか優雅さに欠けていると感じます。このアプローチの反対は次のとおりです。

  • rootを使用している場合でも、Sudoユーザーに切り替えるときの不一致(例:vimを使用する場合)

  • 常に機能するとは限りません。 Arch Linux DEAMONSアレイからデーモンをロードする場合、それらはrootユーザーによって実行されるため、ローカルユーザー構成を取得しません。

  • メジャー$HOMEディレクトリの乱雑さ。残念ながら、 $XDG_CONFIG_HOME の哲学に準拠しているアプリはほとんどありません。

利点は次のとおりです。

  • ものはローカルであり、rootromeovsの間で分割される権限の行でより多くを感じます。

  • ファイルへの迅速かつ簡単なアクセス。それらを編集するためにSudoする必要はありません。

  • 設定ファイルのgit追跡が簡単になります。

  • どういうわけか、より安全だと感じています。ユーザーは、マシンのグローバル設定を使用せずに、ものを台無しにすることができます。

  • それはより「a-package-update-may-overwite-my-config」に耐えます

具体的に見てみましょう:

特にシステムメンテナー(シングルユーザー)の場合、シングルユーザーマシンで構成を分割するためのデファクトスタンダードは何ですか?

4
romeovs

ある日、コンピューターを変更したり、他の誰か(家族など)にコンピューターのアカウントを提供したりします。

  • 次のコンピュータで設定を保持したい場合は、ホームディレクトリに配置します。
  • 他の人が別の設定を必要とする可能性がある場合は、それをホームディレクトリに配置します。
  • 設定がコンピューターに依存し、ユーザーに依存しない場合は、/etcに入れます。

構成ファイルをホームディレクトリに置くことに反対するあなたの議論は、実際には水を保持していません:

  • Sudoは、HOME環境変数を保持します(そうしないように指示した場合を除く)。したがって、プログラムはホームディレクトリから設定を読み取り続けます。
  • デーモンは、個人設定を読み取ることは想定されていません。デーモンは通常、環境変数やホームディレクトリ内のファイルではなく、/etc内のファイルを介して構成されます。
  • $HOMEにはたくさんのドットファイルがあるはずです。そのため、lsはそれらを表示しません。