kaliディストリビューションは/ etc / environmentsファイルを使用しませんか?

kaliディストリビューションは/ etc / environmentsファイルを使用しませんか?

/etc/environments ファイルにパスを追加しましたが、次のようになります。

mindaugas@Kali:~$ cat /etc/environment | tr ":" "\n"
PATH="/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/sbin"

ログアウトして再度ログインします。しかし、私は$PATH変わりません。

mindaugas@Kali:~$ echo $PATH | tr ":" "\n"
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games

Ubuntu 14.04の変更で同じ手順を実行します$PATH

疑問に思う - なぜですか?

答え1

Linuxでは/etc/environment通常、読み込みが行われます。 pam_env.soログイン中のモジュール。モジュールが最小システムにインストールされていないか、/ etcファイルを読み取らないように構成されているか、ログインプロセス中に呼び出されるように/ etc / pam.d / *に構成されていない可能性があります。望むよりman pam_env pam

答え2

ほとんどのシェルにはエンコーディングをロードする義務はありません/etc/environment

シェルが探す正確なファイルとそのファイルをロードしようとする順序は、使用する実際のシェルによって異なりますが、一般的に信頼できる唯一のファイルは/etc/shellnamerc~/.shellnamerc詳しくは、お好みのシェルのマンページをご覧ください。

特定のUbuntuの場合、優先シェルは構成ファイルおよび/etc//または作成時にアカウントに提供された構成ファイルをロードし、これらの構成ファイルの1つは、その内容が存在する場合は検索して/etc/skel/ロードするように指示します。/etc/environment

はい、場合によっては便利な機能ですが、普遍的ではありません...そして率直に言ってできないこれは、シェルごとに環境変数を設定する方法が異なる可能性があるためです。たとえば、/etc/environmentBourne型シェル(bash、、、sh)のaはdashCシェル(csh、)には適用されません。tcsh

長い話を短く/etc/environment一般的ですが、普遍的な選択機能ではありません。カリーが足りないのは間違いではありません。

関連情報