LOGIN.DEFS(5)

NAME
login.defs - Konfiguration der Werkzeugsammlung für Shadow-Passwörter

BESCHREIBUNG

Die Datei /etc/login.defs legt die systemspezifische Konfiguration der Werkzeugsammlung für Shadow-Passwörter fest. Diese Datei muss vorhanden sein. Wenn sie fehlt, wird das System zwar laufen, es können aber unerwünschte Ergebnisse auftauchen.

Diese Datei ist eine lesbare Textdatei. Jede Zeile der Datei beschreibt einen Konfigurationsparameter. Eine Zeile besteht aus einem Konfigurationsnamen und einem Wert, die durch ein Leerzeichen getrennt sind. Leer- und Kommentarzeilen werden nicht beachtet. Kommentare werden mit dem Rautezeichen »#« eingeleitet. Die Raute muss das erste nicht leere Zeichen der Zeile sein.

Die Parameterwerte können aus vier Typen bestehen: Zeichenketten, Boolesch, Zahlen und lange Zahlen. Eine Zeichenkette kann aus jedem druckbaren Zeichen bestehen. Ein Boolesch sollte »yes« oder »no« sein. Einem anderen oder undefinierten Parameter für Boolesch wird der Wert »no« zugewiesen. Normale und lange Zahlen können aus Dezimalzahlen, Oktalzahlen (beginnen mit »0«) oder Hexadezimalzahlen (beginnen mit »0x«) bestehen. Die maximale Größe der Parameter normaler und langer Zahlen ist systemabhängig.

Die folgenden Konfigurationsmöglichkeiten sind vorhanden:

CHFN_RESTRICT (Zeichenkette)
    Der Parameter bestimmt, welcher Wert in dem gecos-Feld von /etc/passwd von gewöhnlichen Benutzern mittels des Programms chfn geändert werden darf. Er kann aus jeder Kombination der Buchstaben f ,r, w und h bestehen. Diese Buchstaben stehen für den vollständigen Namen, die Zimmernummer, die geschäftliche Telefonnummer und die private Telefonnummer. Zum Zweck der Abwärtskompatibilität entspricht yes rwh und no frwh. Falls nichts festgelegt wird, kann nur Root Änderungen vornehmen. Die größte Einschränkung erreicht man besser, indem chfn nicht mit SUID-Rechten ausgestattet wird.

CONSOLE_GROUPS (Zeichenkette)
    Liste von Gruppen, deren Mitglied der Benutzer wird, wenn der sich auf der Konsole anmeldet, die mit dem Parameter CONSOLE festgelegt wird. Standardmäßig ist die Liste leer. Seien Sie vorsichtig. Benutzer können dauerhaft Zugang zu den Gruppen erlangen, auch wenn sie nicht auf der Konsole angemeldet sind.

CREATE_HOME (boolesch)
    bestimmt, ob standardmäßig ein Home-Verzeichnis für neue Benutzer erstellt werden soll

    Diese Einstellung trifft nicht auf Systembenutzer zu. Sie kann auf der Befehlszeile überschrieben werden.

DEFAULT_HOME (boolesch)
    Legt fest, ob ein Login erlaubt wird, wenn mit cd nicht in das Home-Verzeichnis gewechselt werden kann. Standardmäßig wird dies nicht zugelassen.

    Falls auf yes gesetzt, wird der Benutzer mit dem Wurzelverzeichnis (/) angemeldet, wenn mit cd nicht in sein Home-Verzeichnis gewechselt werden kann.

ENCRYPT_METHOD (Zeichenkette)
    Damit wird der standardmäßige Verschlüsselungsalgorithmus, mit dem Passwörter verschlüsselt werden, bestimmt (soweit nicht in der Befehlszeile ein Algorithmus angegeben wird).

    Ihm kann einer der folgenden Wert zugewiesen werden: DES (default), MD5, SHA256, SHA512.

    Hinweis: Dieser Parameter überschreibt die Variable MD5_CRYPT_ENAB.

    Hinweis: Damit wird lediglich die Erstellung von Gruppenpasswörtern beeinflusst. Benutzerpasswörter werden dagegen von PAM erstellt, so dass dieser Vorgang in PAM konfiguriert werden muss. Empfehlenswert ist, diese Variable mit der Konfiguration von PAM in Einklang zu bringen.

ENV_HZ (Zeichenkette)
    Wenn vergeben, wird damit die Umgebungsvariable HZ definiert, wenn sich ein Benutzer anmeldet. Dem Wert muss ein HZ= vorangestellt werden. Ein üblicher Wert bei Linux ist HZ=100.

    Die Umgebungsvariable HZ wird nur gesetzt, wenn sich der Benutzer (der Administrator) mit sulogin anmeldet.

ENV_PATH (Zeichenkette)
    Wenn gesetzt, wird damit die Umgebungsvariable PATH definiert, wenn sich ein normaler Benutzer anmeldet. Der Wert ist eine Liste, deren Einträge durch Doppelpunkte getrennt sind (zum Beispiel /bin:/usr/bin). Ihr kann ein PATH= vorangestellt werden. Der Standardwert ist PATH=/bin:/usr/bin.

ENV_SUPATH (Zeichenkette)
    Wenn gesetzt, wird damit die Umgebungsvariable PATH definiert, wenn sich der Superuser anmeldet. Der Wert ist eine Liste, deren Einträge durch Doppelpunkte getrennt sind (zum Beispiel /sbin:/bin:/usr/sbin:/usr/bin). Ihr kann ein PATH= vorangestellt werden. Der Standardwert ist PATH=/sbin:/bin:/usr/sbin:/usr/bin.

ERASECHAR (Zahl)
    Das Löschzeichen des Terminals (010 = Rücktaste, 0177 = Entf).

    Wenn der Wert mit »0« beginnt, wird er als Oktalzahl gewertet, wenn er mit »0x« beginnt, als Hexadezimalzahl.

FAIL_DELAY (Zahl)
    Wartezeit in Sekunden, ehe nach einem fehlgeschlagenen Anmeldeversuch ein neuer unternommen werden kann

FAKE_SHELL (Zeichenkette)
    Falls angegeben, führt login diese Shell anstelle der in /etc/passwd angegebenen Shell des Benutzers aus.

GID_MAX (Zahl), GID_MIN (Zahl)
    der Bereich von Gruppen-IDs, aus dem die Programme useradd, groupadd oder newusers bei der Erstellung normaler Gruppen auswählen dürfen

    Der Standardwert für GID_MIN ist 1000, für GID_MAX 60.000.

HUSHLOGIN_FILE (Zeichenkette)
    Falls angegeben, kann diese Datei die übliche Informationsanzeige während des Anmeldevorgangs unterbinden. Wenn ein vollständiger Pfad angegeben wird, wird der Modus ohne Anmeldeinformationen verwendet, wenn der Name oder die Shell des Benutzers in der Datei enthalten sind. Wenn kein vollständiger Pfad angegeben wird, wird der Modus ohne Anmeldeinformationen aktiviert, wenn die Datei im Home-Verzeichnis des Benutzers existiert.

KILLCHAR (Zahl)
    Das KILL-Zeichen des Terminals (025 = CTRL/U).

    Wenn der Wert mit »0« beginnt, wird er als Oktalzahl gewertet, wenn er mit »0x« beginnt, als Hexadezimalzahl.

LOG_OK_LOGINS (boolesch)
    aktiviert die Protokollierung erfolgreicher Anmeldungen

LOG_UNKFAIL_ENAB (boolesch)
    aktiviert die Anzeige unbekannter Benutzernamen, wenn fehlgeschlagene Anmeldeversuche aufgezeichnet werden

    Hinweis: Das Protokollieren unbekannter Benutzernamen kann ein Sicherheitsproblem darstellen, wenn ein Benutzer sein Passwort anstelle seines Anmeldenamens eingibt.

LOGIN_RETRIES (Zahl)
    maximale Anzahl von Anmeldeversuchen, wenn ein falsches Passwort eingegeben wird

    Dies wird höchstwahrscheinlich von PAM überschrieben, da standardmäßig das Modul pam_unix drei Versuche enthält. Dennoch stellt dies ein zusätzliches Sicherungssystem dar, falls Sie eine Anmeldemöglichkeit einsetzen, die nicht PAM_MAXTRIES beachtet.

LOGIN_TIMEOUT (Zahl)
    Höchstdauer für einen Anmeldeversuch

MAIL_DIR (Zeichenkette)
    Das Verzeichnis des Mail-Spools. Diese Angabe wird benötigt, um die Mailbox zu bearbeiten, nachdem das entsprechende Benutzerkonto verändert oder gelöscht wurde. Falls nicht angegeben, wird ein Standard verwendet, der beim Kompilieren festgelegt wurde.

MAIL_FILE (Zeichenkette)
    Legt den Ort der Mail-Spool-Dateien eines Benutzers relativ zu seinem Home-Verzeichnis fest.

Die Variablen MAIL_DIR und MAIL_FILE werden von useradd, usermod und userdel verwendet, um den Mail-Spool eines Benutzers zu erstellen, zu verschieben oder zu löschen.

MAX_MEMBERS_PER_GROUP (Zahl)
    Maximale Anzahl von Mitgliedern je Gruppeneintrag. Wenn das Maximum erreicht wird, wird ein weiterer Eintrag in /etc/group (mit dem gleichen Namen, dem gleichen Passwort und der gleichen GID) erstellt.

    Der Standardwert ist 0, was zur Folge hat, dass die Anzahl der Mitglieder einer Gruppe nicht begrenzt ist.

    Diese Fähigkeit (der aufgeteilten Gruppe) ermöglicht es, die Zeilenlänge in der Gruppendatei zu begrenzen. Damit kann sichergestellt werden, dass die Zeilen für NIS-Gruppen nicht länger als 1024 Zeichen sind.

    Falls Sie eine solche Begrenzung benötigen, können Sie 25 verwenden.

    Hinweis: Aufgeteilte Gruppen werden möglicherweise nicht von allen Werkzeugen unterstützt, selbst nicht aus der Shadow-Werkzeugsammlung. Sie sollten diese Variable nur setzen, falls Sie zwingend darauf angewiesen sind.

MD5_CRYPT_ENAB (boolesch)
    Legt fest, ob Passwörter mit dem auf MD5 beruhenden Algorithmus verschlüsselt werden. Falls diesem Wert yes zugewiesen ist, werden neue Passwörter mit dem auf MD5 beruhenden Algorithmus verschlüsselt, der zu dem in der aktuellen Veröffentlichung von FreeBSD eingesetzten Algorithmus kompatibel ist. Passwörter können dann beliebig lang sein, auch die Salt-Zeichenketten sind länger. Setzen Sie diesen Wert auf no, wenn Sie verschlüsselte Passwörter auf ein anderes System kopieren möchten, das den neuen Algorithmus nicht versteht. Der Standardwert ist no.

    Dieser Variable geht die Variable ENCRYPT_METHOD und eine Option auf der Befehlszeile, mit der der Verschlüsselungsalgorithmus bestimmt wird, vor.

    Der Einsatz dieser Variable ist veraltet. Sie sollten ENCRYPT_METHOD verwenden.

    Hinweis: Damit wird lediglich die Erstellung von Gruppenpasswörtern beeinflusst. Benutzerpasswörter werden dagegen von PAM erstellt, so dass dieser Vorgang in PAM konfiguriert werden muss. Empfehlenswert ist, diese Variable mit der Konfiguration von PAM in Einklang zu bringen.

PASS_MAX_DAYS (Zahl)
    Die maximale Anzahl von Tagen, für die ein Passwort verwendet werden darf. Wenn das Passwort älter ist, wird ein Wechsel des Passworts erzwungen. Falls nicht angegeben, wird -1 angenommen (was zur Folge hat, dass diese Beschränkung abgeschaltet ist).

PASS_MIN_DAYS (Zahl)
    Die Mindestanzahl von Tagen, bevor ein Wechsel des Passworts zugelassen wird. Ein vorheriger Versuch, das Passwort zu ändern, wird abgelehnt. Falls nicht angegeben, wird -1 angenommen (was zur Folge hat, dass diese Beschränkung abgeschaltet ist).

PASS_WARN_AGE (Zahl)
    Die Anzahl von Tagen, an denen der Benutzer vorgewarnt wird, bevor das Passwort verfällt. Eine Null bedeutet, dass eine Warnung nur am Tag des Verfalls ausgegeben wird. Ein negativer Wert bedeutet, dass keine Vorwarnung erfolgt. Falls nicht angegeben, wird keine Vorwarnung ausgegeben.

PASS_MAX_DAYS, PASS_MIN_DAYS und PASS_WARN_AGE werden nur bei der Erstellung eines Kontos verwendet. Spätere Änderungen dieser Werte berühren bestehende Konten nicht.

SHA_CRYPT_MIN_ROUNDS (Zahl), SHA_CRYPT_MAX_ROUNDS (Zahl)
    Wenn ENCRYPT_METHOD auf SHA256 oder SHA512 gesetzt ist, legt dies die Anzahl der Runden von SHA fest, die standardmäßig vom Verschlüsselungsalgorithmus verwendet werden (falls die Anzahl der Runden nicht auf der Befehlszeile angegeben wird).

    Je mehr Runden Sie definieren, umso schwieriger ist es, das Passwort mit sturem Durchprobieren (brute force) zu knacken; umso mehr Rechenleistung wird jedoch auch für die Anmeldung eines Benutzers benötigt.

    Falls Sie nichts angeben, wird libc die Standardanzahl der Runden festlegen (5000).

    Die Werte müssen zwischen 1000-999.999.999 liegen.

    Falls nur der Wert für SHA_CRYPT_MIN_ROUNDS oder SHA_CRYPT_MAX_ROUNDS festgelegt wird, wird dieser Wert verwendet.

    Falls SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS, wird der höhere Wert verwendet.

    Hinweis: Damit wird lediglich die Erstellung von Gruppenpasswörtern beeinflusst. Benutzerpasswörter werden dagegen von PAM erstellt, so dass dieser Vorgang in PAM konfiguriert werden muss. Empfehlenswert ist, diese Variable mit der Konfiguration von PAM in Einklang zu bringen.

SULOG_FILE (Zeichenkette)
    Wenn angegeben, wird jeder Aufruf von su in dieser Datei protokolliert.

SU_NAME (Zeichenkette)
    Damit kann die Anzeige des Namens des Befehls festgelegt werden, wenn »su -« ausgeführt wird. Wenn beispielsweise dies auf »su« gesetzt wurde, zeigt »ps« den Befehl als »-su« an. Wenn es dagegen nicht vergeben wurde, wird »ps« den Namen der Shell anzeigen, die ausgeführt wird, also etwa »-sh«.

SYS_GID_MAX (Zahl), SYS_GID_MIN (Zahl)
    der Bereich von Gruppen-IDs, aus dem die Programme useradd, groupadd oder newusers bei der Erstellung von Systemgruppen auswählen dürfen

    Der Standardwert für SYS_GID_MIN ist 101, für SYS_GID_MAX GID_MIN-1.

SYS_UID_MAX (Zahl), SYS_UID_MIN (Zahl)
    der Bereich von Benutzer-IDs, aus dem die Programme useradd oder newusers bei der Erstellung von Systembenutzern auswählen dürfen

    Der Standardwert für SYS_UID_MIN ist 101, für SYS_UID_MAX UID_MIN-1.

SYSLOG_SG_ENAB (boolesch)
    aktiviert das Protokollieren der Aktivitäten von sg in »syslog«

SYSLOG_SU_ENAB (boolesch)
    aktiviert das Protokollieren der Aktivitäten von su in »syslog« neben der Protokollierung in der sulog-Datei

TTYGROUP (Zeichenkette), TTYPERM (Zeichenkette)
    Die Rechte des Terminals: Das Anmelde-tty gehört der Gruppe TTYGROUP an, die Rechte werden auf TTYPERM gesetzt.

    Standardmäßig ist der Eigentümer des Terminals die Hauptgruppe des Benutzers, die Rechte werden auf 0600 gesetzt.

    TTYGROUP kann der Gruppenname oder die als Zahl ausgedrückte Gruppen-ID sein.

    Wenn Sie ein write-Programm haben, das »setgid« für eine Gruppe besitzt, der das Terminal gehört, sollten Sie TTYGROUP die Gruppennummer und TTYPERM den Wert 0620 zuweisen. Oder Sie sollten TTYGROUP als Kommentar belassen und TTYPERM den Wert 622 oder 600 zuweisen.

TTYTYPE_FILE (Zeichenkette)
    Falls angegeben, eine Datei, welche einer tty-Zeile den Umgebungsparameter TERM zuweist. Jede Zeile hat das Format wie etwa »vt100 tty01«.

UID_MAX (Zahl), UID_MIN (Zahl)
    der Bereich von Benutzer-IDs, aus dem die Programme useradd oder newusers bei der Erstellung normaler Benutzer auswählen dürfen

    Der Standardwert für UID_MIN ist 1000, für UID_MAX 60.000.

UMASK (Zahl)
    Die Bit-Gruppe, welche die Rechte von erstellten Dateien bestimmt, wird anfänglich auf diesen Wert gesetzt. Falls nicht angegeben, wird sie auf 022 gesetzt.

    useradd und newusers verwenden diese Bit-Gruppe, um die Rechte des von ihnen erstellten Home-Verzeichnisses zu setzen.

    Sie wird ebenfalls von pam_umask als die Standard-Umask verwendet.

USERDEL_CMD (Zeichenkette)
    Falls angegeben, wird dieser Befehl ausgeführt, wenn ein Benutzer entfernt wird. Damit können At-, Cron- und Druckaufträge etc. des entfernten Benutzers (wird als erstes Argument übergeben) gelöscht werden.

    Der Rückgabewert des Skripts wird nicht ausgewertet.

    Dies ist ein Beispielsskript, das die cron-, at- und Druckaufträge des Benutzers entfernt:

        #! /bin/sh
        # Prüfen, ob das benötigte Argument angegeben wurde
        if [ $# != 1 ]; then
        	echo "Verwendungsweise: $0 Benutzername"
        	exit 1
        fi
        # cron-Aufträge entfernen
        crontab -r -u $1
        # at-Aufträge entfernen.
        # Hinweis: Dies wird alle Aufträge entfernen, die der gleichen UID
        # gehören, selbst wenn sie von einem Benutzer mit einem anderen Namen
        # eingerichtet wurden.
        AT_SPOOL_DIR=/var/spool/cron/atjobs
        find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \;
        # Druck-Aufträge entfernen
        lprm $1
        # Fertig
        exit 0

USERGROUPS_ENAB (boolesch)
    Wenn der Wert yes ist, wird userdel die Gruppe des Benutzers entfernen, falls sie keine Mitglieder mehr hat, und useradd wird standardmäßig eine Gruppe mit dem Namen des Benutzers erstellen.

QUERVERWEISE

Die folgenden Querverweise zeigen, welche Programme aus der Shadow-Passwort-Werkzeugsammlung welche Parameter verwenden.

chfn
    CHFN_RESTRICT

chgpasswd
    ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS

chpasswd
    SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS

gpasswd
    ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS

groupadd
    GID_MAX GID_MIN MAX_MEMBERS_PER_GROUP SYS_GID_MAX SYS_GID_MIN

groupdel
    MAX_MEMBERS_PER_GROUP

groupmems
    MAX_MEMBERS_PER_GROUP

groupmod
    MAX_MEMBERS_PER_GROUP

grpck
    MAX_MEMBERS_PER_GROUP

grpconv
    MAX_MEMBERS_PER_GROUP

grpunconv
    MAX_MEMBERS_PER_GROUP

login
    CONSOLE_GROUPS DEFAULT_HOME ERASECHAR FAIL_DELAY FAKE_SHELL HUSHLOGIN_FILE KILLCHAR LOGIN_RETRIES LOGIN_TIMEOUT LOG_OK_LOGINS LOG_UNKFAIL_ENAB TTYGROUP TTYPERM TTYTYPE_FILE USERGROUPS_ENAB

newgrp / sg
    SYSLOG_SG_ENAB

newusers
    ENCRYPT_METHOD GID_MAX GID_MIN MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS SYS_GID_MAX SYS_GID_MIN SYS_UID_MAX SYS_UID_MIN UID_MAX UID_MIN UMASK

pwck
    PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE

pwconv
    PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE

su
    CONSOLE_GROUPS DEFAULT_HOME ENV_PATH ENV_SUPATH SULOG_FILE SU_NAME SYSLOG_SU_ENAB

sulogin
    ENV_HZ

useradd
    CREATE_HOME GID_MAX GID_MIN MAIL_DIR MAX_MEMBERS_PER_GROUP PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE SYS_GID_MAX SYS_GID_MIN SYS_UID_MAX SYS_UID_MIN UID_MAX UID_MIN UMASK

userdel
    MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP USERDEL_CMD USERGROUPS_ENAB

usermod
    MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP

FEHLER

Ein Großteil der Funktionen, die früher einmal durch die Shadow-Passwort-Werkzeugsammlung angeboten wurden, wird heute durch PAM zur Verfügung gestellt. Daher wird /etc/login.defs nicht länger von Programmen wie passwd(1) ausgewertet und von Programmen wie login(1) oder su(1) nur noch in geringem Umfang beachtet. Sie sollten daher für eine entsprechende Konfiguration in den Dateien von PAM nachsehen.

SIEHE AUCH

login(1), passwd(1), su(1), passwd(5), shadow(5), pam(8).