SHADOW(3)

NAME
shadow, getspnam - Routinen für die Datei, die die verschlüsselten Passwörter enthält

SYNTAX

#include <shadow.h>

struct spwd *getspent();

truct spwd *getspnam(char *name);

void setspent();

void endspent();

struct spwd *fgetspent(FILE *fp);

struct spwd *sgetspent(char *cp);

int putspent(struct spwd *p, DATEIEN *fp);

int lckpwdf();

int ulckpwdf();

BESCHREIBUNG

shadow verändert den Inhalt der Shadow-Passwort-Datei /etc/shadow. Der Aufbau der Datei #include ist:

    struct spwd {
          char  *sp_namp; /* Anmeldename des Benutzers */
          char  *sp_pwdp; /* verschlüsseltes Passwort */
          long int  sp_lstchg; /* letzte Änderung des Passworts */
          long int  sp_min; /* Tage, ehe Änderung erlaubt ist */
          long int  sp_max; /* Tage, bis Änderung erfolgen muss */
          long int  sp_warn; /* Tage für Warnung vor Verfall */
          long int  sp_inact; /* Tage, ehe Konto inaktiv wird */
          long int  sp_expire; /* Datum, an dem Konto abgeschaltet wird */
          unsigned long int  sp_flag; /* reserviert für zukünftigen Gebrauch*/
    }

Die Bedeutung dieser Felder ist:

    • sp_namp - Verweis auf Benutzername, der mit einer Null endet

    • sp_pwdp - Verweis auf Passwort, das mit einer Null endet

    • sp_lstchg - Anzahl der Tage gerechnet ab dem 1. Januar 1970, seitdem das Passwort das letzte Mal geändert wurde

    • sp_min - Anzahl der Tage, ehe das Passwort nicht geändert werden darf

    • sp_max - Anzahl der Tage, nach denen das Passwort geändert werden muss

    • sp_warn - Anzahl der Tage ehe das Passwort verfällt, an denen der Benutzer vor dem Verfall gewarnt wird

    • sp_inact - Anzahl der Tage nach dem Verfall des Passworts, nach denen das Konto als inaktiv angesehen und abgeschaltet wird

    • sp_expire - Anzahl Tage gerechnet ab dem 1. Januar 1970, für die das Konto abgeschaltet ist

    • sp_flag - für zukünftigen Gebrauch reserviert

BESCHREIBUNG

getspent, getspname, fgetspent und sgetspent geben einen Verweis auf struct spwd zurück. getspent gibt den nächsten Eintrag der Datei zurück. fgetspent gibt den nächsten Eintrag im angegebenen Datenstrom zurück, für den angenommen wird, dass es sich dabei um eine Datei im zulässigen Format handelt. sgetspent gibt einen Verweis auf einen struct spwd zurück, wobei die angegebene Zeichenkette als Eingabe verwendet wird. getspnam sucht ab der aktuellen Position in der Datei nach einem Eintrag, der mit name übereinstimmt.

setspent und endspent können verwendet werden, um den Zugriff auf die Shadow-Passwort-Datei zu beginnen oder zu beenden.

Die Routinen lckpwdf und ulckpwdf sollten eingesetzt werden, da so sichergestellt werden kann, dass exlusiv auf die Datei /etc/shadow zugegriffen wird. lckpwdf versucht, eine Sperre durch pw_lock für bis zu 15 Sekunden zu erhalten. Dann versucht es, eine zweite Sperre durch spw_lock für den Rest der 15 Sekunden zu erhalten. Sollte einer der beiden Versuche nach insgesamt 15 Sekunden scheitern, gibt lckpwdf -1 zurück. Wurden beide Sperren erhalten, wird 0 zurückgegeben.

DIAGNOSE

Wenn kein weiterer Eintrag vorhanden ist oder während der Verarbeitung ein Fehler auftritt, geben die Routinen NULL zurück. Routinen, die int als Rückgabewert haben, geben im Erfolgsfall 0 und beim Scheitern -1 zurück.

WARNUNGEN

Diese Routinen können nur von Root verwendet werden, da der Zugriff auf die Shadow-Passwort-Datei beschränkt ist.

DATEIEN

/etc/shadow
    verschlüsselte Informationen zu den Benutzerkonten

SIEHE AUCH

getpwent(3), shadow(5).