Titel: Abläufe durch Handbücher nachvollziehen
Beitrag von: Sebastian am 27. September 2023, 16:43:20
Hallo Suletuxe,
In den Arch News vom 22.09.23 wurde zum einen der Passwortalgorithmus zu yescrypt umgestellt. Darum soll es aber hier jetzt erst mal nicht gehen. Vielmehr möchte ich hier einmal versuchen zu erklären, bzw. zu den entsprechenden Dokumentationen führen, die was mit der umask zu tun hat. Und warum laut den Arch Entwicklern dafür kein manueller Eingriff nötig ist.
Was ist umask? (https://wiki.archlinux.org/title/Umask)
Arch hat früher die umask in der /etc/profile konfiguriert. Wie und warum hat das jetzt funktioniert, das nach jedem Login die umask auf einen Wert X gesetzt wurde? Die Antwort finden wir im bash(1) (https://man.archlinux.org/man/core/bash/bash.1.en#INVOCATION) Handbuch.
When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
|
|
Jetzt benutzt Arch dafür die Datei /etc/login.defs. Warum funktioniert auch das? Die Antwort darauf finden wir in dem Handbuch der LOGIN.DEFS(5) (https://man.archlinux.org/man/login.defs.5) Datei.
UMASK (number)
The file mode creation mask is initialized to this value. If not specified, the mask will be initialized to 022. useradd and newusers use this mask to set the mode of the home directory they create if HOME_MODE is not set.
It is also used by pam_umask as the default umask value.
|
|
Der wichtige Hinweis ist der hervorgehobene Satz. Damit können wir mal weiter in das PAM_UMASK(8) (https://man.archlinux.org/man/pam_umask.8) Handbuch schauen:
pam_umask is a PAM module to set the file mode creation mask of the current environment. The umask affects the default permissions assigned to newly created files.
The PAM module tries to get the umask value from the following places in the following order:
•umask= entry in the user's GECOS field •umask= argument •UMASK entry from /etc/login.defs •UMASK= entry from /etc/default/login
|
|
Das PAM Modul setzt und liest also unter anderem die umask aus der Datei /etc/login.defs. Um jetzt zu verstehen, wann PAM zum Einsatz kommt und was das mit dem Benutzer Login zu tun hat, muss man sich jetzt noch ein wenig über PAM (https://wiki.archlinux.org/title/PAM) schlaumachen. Es sei nur so viel gesagt PAM also die Pluggable Authentication Modules bieten verschiedene Authentifikations-Methoden an, und führen nach erfolgreicher Autentifikation unterschiedliche Dinge aus. Unter anderem werden Umgebungsvariablen wie UMASK gesetzt, oder auch Dateisysteme gemountet. Daher kann man die Umgebungsvariable UMASK auch über die Datei /etc/login.defs setzten. Da PAM diese dann liest und verwendet beim Login.
Zu guter Letzt müssen wir nur noch klären, warum dies laut den Arch Entwicklern eine Änderung ist, wo wir selbst nicht eingreifen müssen. Dafür schauen wir uns einmal an, welche Pakete im Besitz der beiden Dateien sind:
Code:
pacman -Qo /etc/login.defs /etc/profile /etc/login.defs ist in shadow 4.14.0-4 enthalten /etc/profile ist in filesystem 2023.09.18-1 enthalten
|
|
Heißt so lange wir nicht selbst Änderungen an Dateien vornehmen, die diesen beiden Paketen gehören. Werden diese bei einem Paket Update einfach mit der neusten Version von pacman überschrieben. Falls man doch selbst Hand angelegt hat, wird pacman eine .pacnew Datei erzeugen, da pacman nicht wissen kann welche Dateiversion einem wichtiger ist. Deswegen überlässt es pacman pacman dem User diesen Konflikt aufzulösen, und legt einfach die andere Dateiversion unter einem anderen Namen mit der endung .pacnew ab.
Wo bekommt man diese Information her? Das wiederum steht im Handbuch von pacman, das jeder schon mal gelesen haben sollte, um seinen Paketmanager zu verstehen. PACMAN(8) (https://man.archlinux.org/man/pacman.8#HANDLING_CONFIG_FILES)
Ich habe hier mit Absicht nicht alles bis ins kleinste Detail erklärt. Mir ging es aufzuzeigen, dass alle Informationen in den Handbüchern zu finden sind. Man muss sich nur ein wenig durch diese durchhangeln, um die Abläufe nachzuvollziehen. Außerdem, so geht es zumindest mir, bekommt man so schnell einen aha Effekt: "So geht das also! Ach, das geht auch?" und man bekommt noch mehr Lust auszuprobieren. Man benötigt dafür meistens nur einen Einstiegspunkt.
Vielleicht ist dem einen das ja schon eine kleine Hilfe.
LG Sebastian |
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.
|