GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wo wird die Umgebungsvariable $HOME gesetzt?

Unter Linux der HOME Umgebungsvariable wird vom Anmeldeprogramm gesetzt:

  • bis login auf der Konsole telnet und rlogin Sitzungen
  • durch sshd für SSH-Verbindungen
  • durch gdm , kdm oder xdm für grafische Sitzungen.

Das Anmeldeprogramm arrangiert es, bevor es exec auf Ihrer Shell aufruft (indem es es in die Argumente von exec aufnimmt), basierend auf dem Wert in /etc/passwd.


Bearbeiten Sie dies, indem Sie Folgendes ausführen:usermod -d /home/whatever_dir whatever_user .

Bitte beachten Sie, dass dies (offensichtlich) das neue Home-Verzeichnis sein wird. Bash wird cd bei der Anmeldung darauf zugreifen, also stellen Sie sicher, dass es existiert und die Berechtigungen korrekt sind. Vergessen Sie außerdem nicht .bashrc , .profile , .xinitrc , etc; wenn sie nicht im Home-Verzeichnis sind, werden sie nicht gelesen.

Von usermod :

Usage: usermod [options] LOGIN

Options:
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           new home directory for the user account
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               force use GROUP as new primary group
  -G, --groups GROUPS           new list of supplementary GROUPS
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             new login shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account

Linux
  1. So ändern Sie die PATH-Variable in Linux

  2. Umgebungsvariable TERM nicht gesetzt

  3. Wo wird die PATH-Variable in Ubuntu gesetzt?

  4. Was ist die Umgebungsvariable XDG_VTNR?

  5. Was ist der beste Weg, um eine Umgebungsvariable in .bashrc festzulegen?

So legen Sie die Umgebungsvariable in Windows fest

So legen Sie Umgebungsvariablen in MacOS fest

So setzen Sie die Umgebungsvariable in Bash

Linux – Wo wird der Environment-String tatsächlich gespeichert?

Wo sollten Umgebungsvariablen für Jenkins festgelegt werden?

Wie ändere ich die Sprache meines Git?