/etc/login.defs: ENV_PATH および ENV_SUPATH 対 PATH

/etc/login.defs: ENV_PATH および ENV_SUPATH 対 PATH

それは何のために使用されますか /etc/login.defsENV_PATHENV_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を定義するために使用されます。

おすすめ記事