Wer kennt es nicht? Man arbeitet an einem Server und muss für einen Dienst einen neuen Benutzer anlegen.
Und schon geht es los: Soll der neue Benutzer ein Home-Verzeichnis bekommen?
Wenn ja, unter dem Standardnamen oder lieber unter einem anderen?
Welche Shell soll zugewiesen werden?
Und vielleicht soll es aus Sicherheitsgründen diesmal keine Login-Shell sein?
Braucht der Benutzer Sudo-Rechte, oder ist er ein einfacher Systembenutzer?
Eigentlich eine simple Aufgabe, aber dennoch gibt es einige wichtige Überlegungen, die man nicht außer acht lassen sollte.
Ein bisschen Theorie…
Wenn man einen echten System-Benutzer erstellt, sollte man sich folgende Fragen stellen:
Mit oder ohne Home-Verzeichnis?
Ein Home-Verzeichnis bietet dem Benutzer eine Art «Heimat», in der er ohne die Rechte anderer Benutzer agieren kann – mehr jedoch nicht. Es ist der Platz, an dem der Benutzer seine persönlichen Dateien und Konfigurationen speichern kann.
Standardmäßig wird das Home-Verzeichnis mit dem gleichen Namen wie der Benutzer erstellt. Es ist jedoch auch möglich, einen anderen Namen oder Pfad für das Home-Verzeichnis zu wählen. In diesem Fall müssen die entsprechenden Berechtigungen für diesen Ordner manuell gesetzt werden. Wird das Verzeichnis jedoch automatisch mit dem Benutzernamen erstellt, entfällt dies, da die Berechtigungen standardmäßig korrekt gesetzt werden.
Welche Shell soll es sein?
Für einen Benutzer, der sich am System anmelden und interaktiv arbeiten soll, wird in der Regel eine Shell benötigt, denn nur über die Shell kann der Benutzer auf das System zugreifen.
Es ist aber auch möglich, einen Benutzer ohne Shell zu erstellen, was vor allem dann sinnvoll ist, wenn der Benutzer keine Login-Möglichkeit haben soll. Fakt ist: Ohne eine Shell kann sich der Benutzer nicht einloggen.
Falls du dennoch einen Benutzer mit beschränkten Shell-Rechten erstellen möchtest (um beispielsweise ein eingeschränktes Arbeitsumfeld zu schaffen), gibt es restriktive Shells wie rbash (Restricted Bash) oder du kannst mit $> bash -r eine ähnliche Funktionalität erzielen.
Benutzer mit Ablaufdatum
Es ist möglich, einen Benutzer anzulegen, dessen Account nach einer bestimmten Zeit abläuft. Ebenso kann ein Benutzeraccount nach Ablauf des Passworts automatisch gesperrt werden. Dies ist eine Stilfrage und hängt von der beabsichtigten Systemkonfiguration ab.
Ein Hinweis: Eine Non-Login-Shell zusammen mit einem Ablauf-Passwort zu kombinieren, ist in den meisten Fällen wenig sinnvoll, da der Benutzer ohnehin nicht einloggen kann.
Benutzer-IDs (UID) und Gruppen-IDs (GID)
Standardmäßig wird jedem Benutzer eine UID (Benutzer-ID) zugewiesen. In Systemen, die LDAP (Lightweight Directory Access Protocol) verwenden, müssen UIDs und GIDs oft manuell vergeben werden – dies kommt jedoch nicht allzu häufig vor.
Für Systeme, die LDAP verwenden, empfiehlt es sich, UIDs und GIDs ab 10000 zu vergeben. Auf diese Weise kann das lokale System den Bereich von UID 1000 bis 9999 für seine eigenen Benutzer verwenden, ohne Konflikte mit der zentralen LDAP-Datenbank zu riskieren.
Das Passwort
Das Passwort eines Benutzers wird unabhängig von der Erstellung des Accounts gesetzt. Erst wenn das Passwort vergeben wurde, kann sich der Benutzer mit seinem Account einloggen. Ein Account ohne Passwort bleibt gesperrt, bis ein Passwort vergeben wird.