Wo wird der Login-Shell-Pfad für /user/games usw. festgelegt?

Wo wird der Login-Shell-Pfad für /user/games usw. festgelegt?

Wenn ich ein Terminal in Ubuntu starte, erhalte ich folgenden Pfad aufecho $PATH

/home/myuser/anaconda3/condabin:/home/myuser/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Ich möchte diese Pfade mit dem Schlüsselwort „Spiele“ aus meinem entfernen $PATH, konnte aber nicht herausfinden, wo Pfade wie /usr/games, /user/local/games, /usr/sbinfestgelegt sind.

Ich habe versucht, durchgrep xxx ~/.* -l

Dadurch werden Dateien erstellt /usr/bin, die festlegen /usr/local/binusw.

Aber nicht für die oben genannten gamesPfade sbin. Wie finde ich heraus, wo es eingestellt ist?

Antwort1

Es gibt mehrere Stellen, an denen es festgelegt werden kann. Zunächst kann es an einer oder mehreren der folgenden Stellen festgelegt werden:

  • jedes Shell-Profil-Skript (z. B. ~/.bashrc, /etc/profile, /etc/bash.bashrc, /etc/profile.d/*, usw.)
  • /etc/login.defs
  • /etc/security/pam_env.conf
  • /etc/environment
  • $HOME/.pam_environment

Antwort2

Wenn es in Ihrer persönlichen Umgebung nicht eingestellt ist, ist es für jeden Benutzer eingestellt. Das heißt irgendwo unter /etc. Gehen Sie zu /etcund geben Sie ein:

grep usr.games * */* */*/* 2> /dev/null

Bei einer Ubuntu-Installation erhalten Sie Folgendes:

environment:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
login.defs:ENV_PATH     PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
manpath.config:MANPATH_MAP      /usr/games              /usr/share/man
passwd:games:x:5:60:games:/usr/games:/usr/sbin/nologin
passwd-:games:x:5:60:games:/usr/games:/usr/sbin/nologin

Die passwdDateien sind für die Benutzerspiele bestimmt und daher nicht von Bedeutung. manpathSie dienen zum Lesen der Handbücher. Wenn Sie sie also von entfernen environmentund login.defs, sind Ihre Spieltage vorbei.

verwandte Informationen