組織の複数のユーザーでUbuntuセットアップを管理しているとしましょう。
標準の.bash_profile
と.bashrc
には、エイリアス、プロンプト設定、PATH
宣言などがあり、すべてのユーザーに使用してもらいます。サーバーが起動すると、chefで初期化され、システムにこれらのドットファイルをインストールするために使用されます。
これを行うための最良の方法は何ですか?いくつかのオプションがありますが、すべてに欠点があります-
それらを/etc
の下にインストールします(例:/etc/profile
)。長所:すべてのユーザーはこのシステム全体の場所から読み取ります。 短所:プリインストールされているハエの既存のバージョンを上書きします。そもそもいつでもそれらをコピーすることができますが、それからそれらを更新して維持する必要があります。 Ubuntuのバージョンがデフォルトのドットファイルを変更する頻度によっては、問題にならない場合があります
それらを/etc
の下にインストールしますが、別の名前(/etc/bash_configs
など)を付けてから、ストックprofile
ファイルとbashrc
ファイルに行を追加して新しいファイルを取得します。 長所:これも機能し、設定はソースになります。 短所:本当にハッキングされているようで、追加のカスタムファイルのsource
にストックファイルの末尾に行をプログラムで追加することに依存しています。
それらを/etc/skel
の下にインストールして、新しいユーザーが作成されるたびに、それらのテンプレートがホームディレクトリにコピーされるようにします。 長所:各ユーザーはファイルのコピーを正しく取得します。 短所:ファイルを更新すると、個々のディレクトリで更新されますか?私は今推測しています。すべてのユーザーが同じファイルを指すようにファイルをシンボリックリンクする方法があるとよいでしょう。
私はそれを複雑にしすぎているかもしれませんが、私が欠けているのは、これを行うためのよりクリーンな方法が必要だと感じています。ある種の自動更新メカニズムで#3を実装する方法があるかどうかに最も興味があります。
ありがとう!
2と3を組み合わせて使用すると思います。変更したファイルを/etc/bash_config
またはその他の場所に配置します。次に、/etc/skel
のデフォルトを変更し、/etc/bash_config
のファイルをソースするようにします。
これには、2と3の両方の利点がいくつかあります。
/etc/bash.bashrc
または/etc/profile
ファイルの編集は含まれません。これは、アップグレードによってシステムが破損することはないことを意味します。/etc/skel
ファイルを変更するアップグレードは、変更が削除されたことを意味するため、問題が発生する可能性があることに注意してください。しかし、それは大したことではないはずです。
ハッキーであるということに関しては、まあ大丈夫です。少し。それほど悪くはありませんが、必要なのは次のようなものを1回実行することだけです。
echo ". /path/to/my_bashrc/" >> /etc/skel/.bashrc
echo ". /path/to/my_profile/" >> /etc/skel/.bashrc
/etc/profile.d/
に.sh
拡張子を付けて変更を加えるだけです(例:/etc/profile.d/MYCOMPANY.sh
)。それらは/etc/profile
によって自動的に呼び出されます。
このようにして、いつでも更新でき、すべてのユーザーがそれらの更新を取得します。