Linux Rechte
Die Datei /etc/passwd
Die Datei /etc/group
Die Datei /etc/shadow
Linux Benutzerverwaltung User anlegen
Linux Benutzerverwaltung User modifizieren
Linux Benutzerverwaltung User löschen
Linux Gruppenverwaltung
Rechte in Linux
Unter Linux sind jeder Datei und jedem Ordner drei Rechteebenen zugeordnet. Sie gelten für
- Eigentümer
- Gruppe
- Alle anderen
Jeder dieser Ebenen lassen sich gesonderte Rechte zuordnen. Diese Rechte sind:
- r wie "read" für das Leserecht
- w wie "write" für das Schreibrecht
- x wie "execute" für das Recht, eine Datei auszuführen (bei Verzeichnissen bedeutet das x, dass das Verzeichnis geöffnet werden darf).
Wer mit "ls -l" den Inhalt eines Linux-Verzeichnisses anzeigen lässt, sieht links die Dateirechte, beispielsweise "rwxrw-r--". Diese Rechte
gelten von links nach rechts gelesen für den Eigentümer einer Datei "rwx", für die Gruppe "rw-" und für die anderen Benutzer "r--".
Falls an erster Stelle ein "d" steht, handelt es sich um ein Verzeichnis.
Diese Rechte lassen sich auch in Zahlen ausdrücken. Dabei steht jeweils eine Ziffer für eine Rechteebene, die erste Ziffer für den
Eigentümer, die zweite für die Gruppe und die dritte für alle anderen.
Die Ziffer selbst ergibt sich aus den genehmigten Rechten:
r = 4
w = 2
x = 1
Die gegebenen Rechte werden einfach zusammengezählt.
Beispiel: Soll der Eigentümer die Datei lesen, schreiben und ausführen dürfen, so addiert man 4 + 2 + 1 und erhält 7.
Soll die Gruppe die Datei nur ansehen und ausführen dürfen, so ergibt 4 + 1 die 5. Und die anderen dürfen gar nichts, haben also die 0.
So ergibt sich in diesem Beispiel für die Dateirechte die 750. Und die kann man mit dem Befehl "chmod" in Linux setzen.
Mehr zu den Attributen verrät "man chmod".
Eigentümer und Gruppe einer Datei oder eines Ordners lassen sich mit den Befehlen chown und chgrp Ändern.
Rechte werden bei Datei/Ordnererstellung nicht vererbt. Neu erstellte Dateien in einem Verzeichnis haben demnach nicht notwendigermaßen
die gleichen Rechte wie dieses Verzeichnis, sondern werden aus einer Rechtemaske (umask) des erzeugenden Programms abgeleitet.
Die Gruppenzuordnung von neu erzeugten Verzeichnissen und Dateien entspricht zunächst je nach Systemeinstellungen entweder der aktiven
Gruppe des Benutzers (z.B. bei Linux) oder der Gruppe des enthaltenden Verzeichnisses (BSD Unix-Standard).
Sonderrechte/erweiterte Rechte:
Häufig steht vor den drei Ziffern an erste Stelle noch eine vierte. Die setzt die Attribute "set user ID", "set group ID" und "sticky".
Setuid - Wird eine Datei, die das Setuid-Bit gesetzt hat, ausgeführt, dann läuft der Prozess mit der effektiven User-ID des Dateieigentümers.
Setgid - Wird eine Datei, die das Setgid-Bit gesetzt hat, ausgeführt, dann läuft der dadurch erzeugte Prozess mit der effektiven Group ID der Inhabergruppe der Datei.
Sticky bit - Verwendung findet das Bit bei Verzeichnissen, wo es zur Folge hat, dass Benutzer Dateien von anderen Benutzern nicht löschen können.
Früher wurde es bei Dateien benutzt, wo das Sticky Bit bewirkte, dass nach dem Ausführen der Datei der Programmcode weiterhin im Arbeitsspeicher
verblieb (bei Swapping-Systemen ohne Paging).
Gesetzt werden die Sonderrechte als erste Zahl vor den Üblichen rechten mir chmod.
Beispiel: chmod 0755 /tmp/text.txt
Suid = 4
Sgid = 2
Sticky Bit = 1
Keine Sonderrechte = 0
--------------------------------------------------------------------------------------------------------------------------------------------
Rechte mit mount:
Wenn wir etwas mounten bekommt das Verzeichniss in welches wir mounten die Rechte des zu mountenden Ordners.
Sprich die Rechte können sich unter umständen verändern. Bitte darauf achten !
Die Datei /etc/passwd
Die Datei /etc/passwd ist die zentrale Benutzerdatenbank.
Mit cat /etc/passwd können Sie einen Blick in diese zentrale Benutzerdatei werfen. Hier werden alle Benutzer des Systems aufgelistet.
Zu beachten ist, dass alle Benutzertypen eingetragen sind, also sowohl der Superuser root als auch die Standard- und Systembenutzer.
Ein Benutzerkonto in der Datei /etc/passwd hat generell folgende Syntax:
Benutzername : Passwort : UID : GID : Info : Heimatverzeichnis : Shell
Benutzername = Dies ist der Benutzername in druckbare Zeichen, meistens in Kleinbuchstaben.
Passwort = Hier steht verschlüsselt das Passwort des Benutzers (bei alten Systemen). Meist finden Sie dort ein x. Dies bedeutet, dass das Passwort verschlüsselt in der Datei /etc/shadow steht. Es ist auch möglich, den Eintrag leer zu lassen. Dann erfolgt die Anmeldung ohne Passwortabfrage (in der Datei /etc/shadow muss dann an Stelle des verschlüsselten Passwortes ein * stehen).
UID = Die Benutzer-ID des Benutzers. Die Zahl hier sollte größer als 100 sein, weil die Zahlen unter 100 für Systembenutzer vorgesehen sind. Weiterhin muss die Zahl aus technischen Gründen kleiner als 64000 sein.
GID = Die Gruppen-ID des Benutzers. Auch hier muss die Zahl wie bei der UID kleiner als 64000 sein.
Info = Hier kann weitere Information vermerkt werden, wie z.B. der vollständige Name des Benutzers und persönliche Angaben (Telefonnummer, Abteilung, Gruppenzugehörigkeit u.ä.).
Heimatverzeichnis = Das Heimatverzeichnis des Benutzers bzw. das Startverzeichnis nach dem Login.
Shell = Die Shell, die nach der Anmeldung gestartet werden soll. Bleibt dieses Feld frei, dann wird die Standardshell /bin/sh gestartet.
Die Datei /etc/group
In dieser Datei finden Sie die Benutzergruppen und ihre Mitglieder.
In der Datei /etc/passwd wird mit der GID eigentlich schon eine Standardgruppe für den Benutzer festgelegt.
In der /etc/group können Sie weitere Gruppenzugehörigkeiten definieren. Das hat in der Praxis vor allem in Netzwerken eine große Bedeutung, weil Sie so in der Lage sind, z.B. Gruppen für Projekte oder Verwaltungseinheiten zu bilden.
Für diese Gruppen kann man dann entsprechend die Zugriffsrechte einstellen. Dies hat dann wiederum den Vorteil, dass man die Daten gegen eine unbefugte Benutzung absichern kann.
Der Eintrag einer Gruppe in die Datei sieht so aus:
Gruppenname : Passwort : GID : Benutzernamen (Mitgliederliste)
Gruppenname = Der Name der Gruppe in druckbare Zeichen, auch hier meistens Kleinbuchstaben.
Passwort = Die Besonderheit hier ist folgende: Wenn das Passwort eingerichtet ist, können auch Nichtmitglieder der Gruppe Zugang zu den Daten der Gruppe erhalten, wenn ihnen das Passwort bekannt ist. Ein x sagt hier aus, das das Passwort in /etc/gshadow abgelegt ist. Der Eintrag kann auch entfallen, dann ist die Gruppe nicht durch ein Passwort geschützt. In diesem Fall kann jedoch auch kein Benutzer in die Gruppe wechseln, der nicht in diese Gruppe eingetragen ist.
GID = Gruppen-ID der Gruppe
Benutzernamen (Mitgliederliste) = hier werden die Mitglieder der Gruppe eingetragen. Diese sind durch ein einfaches Komma getrennt.
Die Datei /etc/shadow
Benutzername : Passwort : DOC : MinD : MaxD : Warn : Exp : Dis : Res
Benutzername = Dies ist der Benutzername in druckbaren Zeichen, meistens in Kleinbuchstaben.
Passwort = Hier steht verschlüsselt das Passwort des Benutzers. Wenn hier ein * oder ! steht, dann bedeutet dies, dass kein Passwort vorhanden bzw. eingetragen ist.
DOC = Day of last change: der Tag, an dem das Passwort zuletzt geändert wurde. Besonderheit hier: Der Tag wird als Integer-Zahl in Tagen seit dem 1.1.1970 angegeben.
MinD = Minimale Anzahl der Tage, die das Passwort gültig ist.
MaxD = Maximale Anzahl der Tage, die das Passwort gültig ist.
Warn = Die Anzahl der Tage vor Ablauf der Lebensdauer, ab der vor dem Verfall des Passwortes zu warnen ist.
Exp = Hier wird festgelegt, wieviele Tage das Passwort trotz Ablauf der MaxD noch gültig ist.
Dis = Bis zu diesem Tag (auch hier wird ab dem 1.1.1970 gezählt) ist das Benutzerkonto gesperrt
Res = Reserve, dieses Feld hat momentan keine Bedeutung.
Linux Benutzerverwaltung User anlegen
passwd - Change a user's password.
userdel - Remove a user from the system.
usermod - Modify a user's account.
User anlegen :
useradd tecmint
Passwort setzen für User tecmint :
passwd tecmint
User anlegen mit seiner Standardgruppe (tecmint) und direkt einige zusätzliche Gruppen zuweisen :
useradd -G admins,webadmin,developers tecmint
User anlegen und Homeverzeichnis anlegen :
useradd -m tecmint
Add a User with Custom Comments :
useradd -c "Manis Khurana" mansi
Add a User with different Login Shell:
useradd -s /sbin/nologin tecmint
User anlegen mit einer speziellen Primären Gruppe :
useradd -g developers tecmint
Add a User with Home Directory, No Shell, Custom Comment :
useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer"
Informationen über den User :
id tecmint
id 1001
To print the primary group membership for a user called tom, enter:
id -g -n tecmint
To print the secondary group membership for a user called tom, enter:
id -G -n tecmint
Lists all usernames in alphabetical order :
getent passwd | cut -d: -f1 | sort
Linux Benutzerverwaltung User modifizieren
User Primäre Gruppe ändern
usermod -g www tecmint
User Secondäre(n) Gruppe zuordnen :
usermod -a -G ftp tecmint
gpasswd -a tecmint ftp
Alle möglichen Shells auflisten :
chsh -l
User tecmint eine andere Shell zuweisen
chsh -s /bin/zsh tecmint
Linux Benutzerverwaltung User löschen
userdel tecmint
-r, -remove-home
Remove the whole home directory and the mail spool of the specified account. Files located in other directories will have to be searched for and deleted manually.
-f, -force
This option is used to force the removal of files, even if not owned by the account.
Linux Gruppenverwaltung
newgrp - Log into a new group.
groupadd - Add a group to the system.
groupdel - Remove a group from the system.
groupmod - Modify a group definition.
Alle Gruppen anzeigen :
getent group | cut -d: -f1
Alle Mitglieder der Gruppe www anzeigen :
getent group www
Gruppe anlegen :
groupadd developers
User tecmint aus einer Gruppe löschen :
gpasswd -d tecmint ftp