それは何のために使用されますか /etc/login.defs
?ENV_PATH
ENV_SUPATH
から/etc/login.defs
:
# REQUIRED The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PATH
/etc/profile
デフォルトの初期パス値は、Debian Jessieの初期パス値とまったく同じように見えます。人々はとても簡単に何を言いますか?ログイン名.defs使用。これページにはもう少し詳細が記載されています。
PATH
そして、ENV_PATH
お互いへの接続や依存性がまったくないようです。下痢があっても、互いにどのように依存するかは不明です。
これら2つの場所でbashシステムパスを更新する必要がありますか?それとも、ある場所でパスを定義し、このデフォルトパス値を参照する方法はありますか?
PATH
または、欠落している場合に備えてデフォルトとして使用されますか? …それではあまり重要ではないでしょうか? ? ?
ベストアンサー1
マニュアルページの引用ログイン名.defs
ENV_PATH(文字列)設定時に一般ユーザーログイン時にPATH環境変数を定義するために使用されます。値はコロンで区切られたパスのリスト(例:/bin:/usr/bin)で、PATH =の前に続くことがあります。デフォルト値は PATH=/bin:/usr/bin です。
ENV_SUPATH(文字列)設定されている場合、スーパーユーザーがログインしたときにPATH環境変数を定義するために使用されます。値はコロンで区切られたパスのリスト(例:/ sbin:/ bin:/ usr / sbin:/ usr / bin)で、PATH =が前に付くことがあります。デフォルト値は PATH=/sbin:/bin:/usr/sbin:/usr/bin です。
どちらも、元の一般的なスーパーユーザーのためのPATH変数を定義するために使用されました。私のlogin.defsはENV_PATH、ENV_SUPATHを次のように定義します。
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
新しいユーザー「foo」を追加しました。
sudo useradd foo
sudo passwd foo
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
「foo」でログインすると
foo@naga-playground:/$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
「ルート」も同様です。
root@naga-playground:/home/pi/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ユーザーは.bashrc、.bash_profile、.zshrc ...を介してPATHをオーバーライドできます。
答えを完成させるために、
ENV_PATHは一般ユーザーのPATHを定義するために使用されます。
ENV_SUPATHは、スーパーユーザー用のPATHを定義するために使用されます。