8.6. Accounts verändern

Unter UNIX® gibt es verschiedene Kommandos, um Accounts zu verändern. Die gebräuchlichsten Kommandos sind unten, gefolgt von einer detaillierten Beschreibung, zusammengefasst.

Kommando Zusammenfassung
adduser(8) Das empfohlene Werkzeug, um neue Accounts zu erstellen.
rmuser(8) Das empfohlene Werkzeug, um Accounts zu löschen.
chpass(1) Ein flexibles Werkzeug, um Informationen in der Account-Datenbank zu verändern.
passwd(1) Ein einfaches Werkzeug, um Passwörter von Accounts zu ändern.
pw(8) Ein mächtiges und flexibles Werkzeug um alle Informationen über Accounts zu ändern.

8.6.1. adduser

adduser(8) ist ein einfaches Programm um neue Benutzer hinzuzufügen. Es erstellt passwd und group Einträge für den Benutzer, genauso wie ein home Verzeichnis, kopiert ein paar vorgegebene Dotfiles aus /usr/share/skel und kann optional dem Benutzer eine ,,Willkommen``-Nachricht zuschicken.

Um die anfängliche Konfigurationsdatei zu erstellen, benutzen Sie: adduser -s -config_create. [1] Zunächst konfigurieren wir Voreinstellungen von adduser(8) und erstellen unseren ersten Benutzer-Account, da es böse und unangenehm ist, root für normale Aufgaben zu verwenden.

Beispiel 8-1. adduser konfigurieren

    # adduser -v
    Use option ``-silent'' if you don't want to see all warnings and questions.
    Check /etc/shells
    Check /etc/master.passwd
    Check /etc/group
    Enter your default shell: csh date no sh tcsh zsh [sh]: zsh
    Your default shell is: zsh -> /usr/local/bin/zsh
    Enter your default HOME partition: [/home]:
    Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: 
    Send message from file: /etc/adduser.message no 
    [/etc/adduser.message]: no
    Do not send message
    Use passwords (y/n) [y]: y
    
    Write your changes to /etc/adduser.conf? (y/n) [n]: y
    
    Ok, let's go.
    Don't worry about mistakes. I will give you the chance later to correct any input.
    Enter username [a-z0-9_-]: jru
    Enter full name []: J. Random User
    Enter shell csh date no sh tcsh zsh [zsh]: 
    Enter home directory (full path) [/home/jru]: 
    Uid [1001]: 
    Enter login class: default []: 
    Login group jru [jru]: 
    Login group is ``jru''. Invite jru into other groups: guest no 
    [no]: wheel
    Enter password []: 
    Enter password again []: 
    
    Name:     jru
    Password: ****
    Fullname: J. Random User
    Uid:      1001
    Gid:      1001 (jru)
    Class:
    Groups:   jru wheel
    HOME:     /home/jru
    Shell:    /usr/local/bin/zsh
    OK? (y/n) [y]: y
    Added user ``jru''
    Copy files from /usr/share/skel to /home/jru
    Add another user? (y/n) [y]: n
    Goodbye!
    #

Zusammengefasst haben wir die vorgegebene Shell in zsh (eine zusätzliche Shell aus der Ports-Sammlung) geändert und das Senden einer ,,Willkommen``-Nachricht an neue Benutzer abgeschaltet. Danach haben wir die Konfiguration abgespeichert und anschließend einen Account für jru eingerichtet und sichergestellt, dass jru in der Gruppe wheel ist, so dass Sie mit su(1) zu root wechseln kann.

Anmerkung: Wenn Sie das Passwort eingeben, werden weder Passwort noch Sternchen angezeigt. Passen Sie auf, dass Sie das Passwort nicht zweimal falsch eingeben.

Anmerkung: Benutzen Sie ab jetzt adduser(8) ohne Argumente, dann müssen Sie nicht jedes mal die Vorgaben neu einstellen. Wenn das Programm Sie fragt, ob Sie die Vorgaben ändern wollen, verlassen und starten Sie es erneut mit der -s Option.

8.6.2. rmuser

Benutzen Sie rmuser(8), um einen Account vollständig aus dem System zu entfernen. rmuser(8) führt die folgenden Schritte durch:

  1. Entfernt den crontab(1) Eintrag des Benutzers (wenn dieser existiert).

  2. Entfernt alle at(1) jobs, die dem Benutzer gehören.

  3. Schließt alle Prozesse des Benutzers.

  4. Entfernt den Benutzer aus der lokalen Passwort-Datei des Systems.

  5. Entfernt das Heimatverzeichnis des Benutzers (falls es dem Benutzer gehört).

  6. Entfernt eingegange E-Mails des Benutzers aus /var/mail.

  7. Entfernt alle Dateien des Benutzers aus temporären Dateispeicherbereichen wie /tmp.

  8. Entfernt den Loginnamen von allen Gruppen, zu denen er gehört, aus /etc/group.

    Anmerkung: Wenn eine Gruppe leer wird und der Gruppenname mit dem Loginnamen identisch ist, wird die Gruppe entfernt; das ergänzt sich mit den einzelnen Benutzer-Gruppen, die von adduser(8) für jeden neuen Benutzer erstellt werden.



Der Superuser-Account kann nicht mit rmuser(8) entfernt werden, da dies in den meisten Fällen das System unbrauchbar macht.

Als Vorgabe wird ein interaktiver Modus benutzt, der sicherzustellen versucht, dass Sie wissen, was Sie tun.

Beispiel 8-2. Interaktives Löschen von Account mit rmuser

    # rmuser jru
    Matching password entry:
    jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
    Is this the entry you wish to remove? y
    Remove user's home directory (/home/jru)? y
    Updating password file, updating databases, done.
    Updating group file: trusted (removing group jru -- personal group is empty) done.
    Removing user's incoming mail file /var/mail/jru: done.
    Removing files belonging to jru from /tmp: done.
    Removing files belonging to jru from /var/tmp: done.
    Removing files belonging to jru from /var/tmp/vi.recover: done.
    #

8.6.3. chpass

chpass(1) ändert Informationen der Benutzerdatenbank wie Passwörter, Shells und persönliche Informationen.

Nur Systemadministratoren, mit Superuser-Rechten, können die Informationen und Passwörter der anderen Benutzer mit chpass(1) verändern.

Werden keine Optionen neben dem optionalen Loginnamen angegeben, zeigt chpass(1) einen Editor mit Account-Informationen an und aktualisiert die Account-Datenbank, wenn dieser Editor beendet wird.

Beispiel 8-3. Interaktives chpass des Superusers

    #Changing user database information for jru.
    Login: jru
    Password: *
    Uid [#]: 1001
    Gid [# or name]: 1001
    Change [month day year]:
    Expire [month day year]:
    Class:
    Home directory: /home/jru
    Shell: /usr/local/bin/zsh
    Full Name: J. Random User
    Office Location:
    Office Phone:
    Home Phone:
    Other information:

Der normale Benutzer kann nur einen kleinen Teil dieser Informationen verändern und natürlich nur die Daten des eigenen Accounts.

Beispiel 8-4. Interaktives chpass eines normalen Benutzers

    #Changing user database information for jru.
    Shell: /usr/local/bin/tcsh
    Full Name: J. Random User
    Office Location:
    Office Phone:
    Home Phone:
    Other information:

Anmerkung: chfn(1) und chsh(1) sind nur Verweise auf chpass(1) genauso wie ypchpass(1), ypchfn(1) und ypchsh(1). NIS wird automatisch unterstützt, deswegen ist es nicht notwendig das yp vor dem Kommando einzugeben. NIS wird später in Kapitel 19 besprochen.

8.6.4. passwd

passwd(1) ist der übliche Weg, Ihr eigenes Passwort als Benutzer zu ändern oder das Passwort eines anderen Benutzers als Superuser.

Anmerkung: Benutzer müssen ihr ursprüngliches Passwort eingeben, bevor sie es wechseln, um eine nicht autorisierte Person davon abzuhalten ihr Passwort zu ändern, wenn der Benutzer gerade nicht an seinem Gerät ist.

Beispiel 8-5. Wechseln des Passworts

    % passwd
    Changing local password for jru.
    Old password:
    New password:
    Retype new password:
    passwd: updating the database...
    passwd: done
    
    # passwd jru
    Changing local password for jru.
    New password:
    Retype new password:
    passwd: updating the database...
    passwd: done

Beispiel 8-6. Als Superuser das Passwort eines anderen Accounts verändern

    # passwd jru
    Changing local password for jru.
    New password:
    Retype new password:
    passwd: updating the database...
    passwd: done

Anmerkung: Wie bei chpass(1) ist yppasswd(1) nur ein Verweis auf passwd(1). NIS wird von jedem dieser Kommandos unterstützt.

8.6.5. pw

pw(8) ist ein Kommandozeilenprogramm, mit dem man Accounts und Gruppen erstellen, entfernen, verändern und anzeigen kann. Dieses Kommando dient als Schnittstelle zu den Benutzer- und Gruppendateien des Systems. pw(8) besitzt eine Reihe mächtiger Kommandozeilenschalter, die es für die Benutzung in Shell-Skripten geeignet machen, doch finden neue Benutzer die Bedienung des Kommandos komplizierter, als die der anderen hier vorgestellten Kommandos.

Fußnoten

[1]

Das -s bringt adduser(8) dazu, weniger Fragen und Fehlermeldungen auszugeben. Wir benutzen -v später, wenn wir die Voreinstellungen ändern wollen.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine EMail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine Email an <de-bsd-translators@de.FreeBSD.org>.