In diesem Artikel wird etwas mit der Benutzerdatenbank experimentiert…

Experimente mit der Benutzerdatenbank:

In der Datei “etc/passwd“ sind die Informationen zu den Benutzern abgelegt. Mit folgenden zwei Befehlen können diese Infos auch bequem im Terminal abgerufen werden.

  • cat /etc/passwd
  • cat /etc/passwd | grep BENUTZER

Der zweite Befehl (entsprechend angepasst mit dem echten Benutzermnamen ) zeigt dann auch nur die Infos zu dem jeweiligen Benutzer. Natürlich kann man daraus jetzt auch ein Shellskript machen:

#!/bin/bash
cat /etc/passwd | grep BENUTZER


Bis hier ist das alles noch nicht wirklich spaktakulär. Vielleicht wird es spannender, wenn wir auch die Gruppen ausgeben…

#!/bin/bash
cat /etc/passwd | grep BENUTZER
cat /etc/group | grep BENUTZER

Im Terminal wird nun die Zeile des jeweiligen Benutzers aus der etc/passwd-Datei angezeigt und die Einträge aus etc/group die dem Benutzer zugeordnet sind. Ich lege jetzt den Benutzer “hans“ an und füge ihn dann meiner eigenen Gruppe zu.

  • sudo adduser hans
  • sudo adduser hans GRUPPE

Mit jedem Benutzer existiert ja auch eine Gruppe mit gleichem Namen. Es gibt jetzt also sowohl den Benutzer “hans“ als auch die Gruppe “hans“. Für meine Testumgebung sieht das Ergebnis für etc/passwd so aus:

  • user01:x:1000:1000:user01,,,:/home/user01:/bin/bash

Die Datei etc/passwd:

Es wird jetzt Zeit sich den Aufbau dieser Datei anzuschauen… Die Doppelpunkte fungieren als Spaltentrenner und die Spalten zeigen von links nach rechts…

  • Benutzer:Passwort:UID:GID:Benutzername:Homeverzeichnis:Shell

Die Datei etc/group:

Die Doppelpunkte fungieren als Spaltentrenner und die Spalten zeigen von links nach rechts…

  • Gruppenname:Passwort:GID:Mitgliederliste

Wer ist in der Gruppe? Wenn ich das wissen möchte kann folgender Befehl genutzt werden:

  • cat /etc/group | grep GRUPPE

In der Mitgliederliste wird aber leider der eigene Benutzer nicht angezeigt, sondern immer nur die anderen Benutzer die auch noch in dieser Gruppe sind! Natürlich kann man auch diesen Terminalbefehl in ein Shellskript einbauen.

#!/bin/bash
cat /etc/passwd | grep BENUTZER
cat /etc/group | grep BENUTZER


Per Terminal soll der Benutzer interaktiv abgefragt werden, statt immer die Anpassung direkt im Shellskript vozunehmen. Das folgende Shellskript erledigt den Job:

#!/bin/bash
echo "Bitte geben Sie den gewuenschten Nutzernamen ein: "
read username
echo "/etc/passwd Eintrag:"
grep $username /etc/passwd
echo "/etc/group Eintrag:"
grep $username /etc/group

Von Torsten