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