パスの設定なんか自由にやればいいんですけどね。
.bashrcや.profileとかに書くのが一般的なんですかね?
ユーザ毎に独自のパスを設定する場合は、それで良いと思うのですが、サーバ全体で共通項目を設定する場合はユーザが作成される度に設定するのも面倒ですよね。
ということで、調べてもあまり記載が少なかったので、記載しておこうと思います。
※ある意味、自分用なので自分好みの設定ということをご了承ください。
ついでに、色々とある方法を記しておこうと思います
色々あるパスの設定場所
パス設定を共通化させたいと言いましても、色々と人それぞれに異なることを思い浮かべているかと思います。
・既にあるユーザの設定も含めて設定しよう
・これから作るユーザは全部統一
・一般ユーザが何をどこで設定されているのか分かるようにしておきたい。
・・・etc
で、大きく分けて2通り考えました。
①/etc/skelを活用する
こちらは、基本的に.bashrcや.bash_profileなどで設定を行うことになります。
既に存在するユーザには影響がなく、共通というよりは今後作成されるユーザに対し共通の設定を提供することになります。
将来的に編集が行われた場合、その編集結果は編集後に作成されるユーザにのみ提供されます。
よって、サーバ全体で環境変数の変更があった場合には、ここで対応を行う必要が生じます。
ユーザ毎の初期設定を共通化させたいという言い回しの方が適していますね。
②/etc/profileや/etc/bashrcで設定する
こちらの方法は、システムで共通の変更を行う際に有効です。
例えば、/etc/profileに環境変数を追加すると、そのタイミング以降にログインするユーザに対して環境変数が自動的に設定されます。
ここでは、/etc/profileにPATHを追加しようと思います。
2022年10月現在、私の使用しているRocky Linux 9では、以下のPATHが通っていませんでした。
・/sbin
・/usr/local/bin
なんでなんでしょうね?
CentOS 8をインストールした時には/sbinへのパスはデフォルトで通っていた様な気がするんですけどね。。。
まず、壊してしまうと後で大変なのでバックアップしておきます。
1 2 |
cd /etc cp profile profile.org |
profileを編集します。
元の状態は以下になります。
1 2 3 4 5 6 7 8 |
# Path manipulation if [ "$EUID" = "0" ]; then pathmunge /usr/sbin pathmunge /usr/local/sbin else pathmunge /usr/local/sbin after pathmunge /usr/sbin after fi |
変更後は以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 |
# Path manipulation if [ "$EUID" = "0" ]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin pathmunge /usr/local/bin else pathmunge /usr/local/bin after pathmunge /usr/local/sbin after pathmunge /usr/sbin after pathmunge /sbin after fi |
これで終わりです。
開発するシステムで独自の設定を施す場合には、/etc/skelに.bashrcを作成するなどが良いと思いますが、今回の様に全体で共通化させるような場合には/etc/profileを検討するのも宜しいかと思います。