Besitz und Berechtigungen

An fr�herer Stelle in diesem Kapitel, als wir versucht hatten, mit cd in das Anmeldeverzeichnis von Root zu wechseln, erhielten wir die folgende Meldung:

[neuerbenutzer@localhost neuerbenutzer]$ cd /root
bash: /root: Permission denied
[neuerbenutzer@localhost neuerbenutzer]$
	  

Dies war eine gute Demonstration f�r die Sicherheitsfunktionen von Linux. Linux ist wie UNIX ein Multiuser-System f�r die gleichzeitige Verwendung durch mehrere Benutzer. Die Vergabe von Zugriffsrechten auf Dateien stellt eine der Methoden dar, die das System f�r den Schutz vor versehentlichen oder b�swilligen �nderungen an wichtigen Dateien zur Verf�gung stellt.

Um dennoch auf dieses Verzeichnis zugreifen zu k�nnen, m�ssen Sie zu Ihrem Root-Account wechseln. Hierzu m�ssen Sie lediglich su eingeben, wie Sie bereits zuvor gelernt haben. Der Grund hierf�r liegt darin, dass jeder Benutzer, der das Root-Passwort kennt, auf alle Bereiche des Systems zugreifen kann.

[neuerbenutzer@localhost neuerbenutzer]$ su
Password: ihrrootpasswort
[root@localhost neuerbenutzer]# cd /root
[root@localhost /root]#
	  

Doch die Anmeldung am System als Superuser ist nicht immer die geeignete Methode - mitunter kann diese Methode sogar Schaden anrichten, da auf diese Weise die Gefahr besteht, versehentlich wichtige Konfigurationsdateien zu besch�digen.

Alle Dateien und Verzeichnisse befinden sich im "Besitz" des Benutzers, der diese erstellt hat. In einer fr�heren �bung haben wir die Datei sneakers.txt in unserem Anmeldeverzeichnis erstellt, und somit "geh�rt" uns sneakers.txt.

Dies bedeutet, dass wir festlegen k�nnen, wer die Datei lesen darf, das Recht zum Schreiben in die Datei oder - im Falle von Programmdateien - Ausf�hren dieser Datei besitzt.

Lesen, Schreiben und Ausf�hren von Dateien sind zugleich die drei wichtigsten Einstellungen f�r Zugriffsberechtigungen.

Da jeder Benutzer im System beim Erstellen seines Benutzeraccounts Mitglied in einer Gruppe wird, k�nnen wir auch festlegen, ob bestimmte Gruppen unsere Datei lesen, ausf�hren oder in sie schreiben d�rfen.

Werfen wir nun einen n�heren Blick auf sneakers.txt. Hierzu verwenden wir den Befehl ls mit der Option -l (long) (siehe Abbildung 15-16).

[neuerbenutzer@localhost neuerbenutzer]$ ls -l sneakers.txt
-rw-rw-r--    1 neuerbenutzer neuerbenutzer     150 Mar 19 08:08 sneakers.txt
	  

Hier werden nun viele Detailinformationen angezeigt. Wir k�nnen beispielsweise sehen, wer Lese- und Schreibrechte (r bzw. w) f�r diese Datei besitzt, wer die Datei erstellt hat (neuerbenutzer) und zu welcher Gruppe der Besitzer geh�rt (neuerbenutzer).

TipIhre Standardgruppe
 

Beachten Sie bitte, dass standardm��ig f�r die Gruppe der von Ihnen gew�hlte Anmeldename vergeben wurde.

Abbildung 15-16 Berechtigungen f�r sneakers.txt

Zu den weiteren Informationen rechts neben dem Gruppennamen z�hlt der Dateiname, die Dateigr��e sowie die Angabe, wann die Datei erstellt wurde.

Was bedeuten nun die ganzen Bindestriche und Buchstaben im Einzelnen? So kompliziert ist diese Meldung gar nicht zu verstehen. Schauen wir uns die Sache mal genauer an:

-rw-rw-r--
	  

In dieser Spalte gibt es insgesamt an 10 Stellen Platz f�r Angaben. An der ersten Stelle wird der Dateityp angegeben. Bei den folgenden neun Stellen handelt es sich um drei jeweils zusammengeh�rige Angaben von Zugriffsberechtigungen f�r drei verschiedene Kategorien von Benutzern.

Bei diesen drei Kategorien handelt es sich um: den Besitzer der Datei, die Gruppe, zu der die Datei geh�rt, und "weitere", also Benutzer und Gruppen, bei denen es sich weder um den Besitzer das Datei (neuerbenutzer) noch um die Mitglieder in dessen Gruppe (die ebenfalls die Bezeichnung neuerbenutzer tr�gt) handelt.

Hier sehen Sie diese Dateiangaben in einer etwas �bersichtlicheren Form:

 -    (rw-)   (rw-)  (r--)    1 neuerbenutzer neuerbenutzer
 |      |       |      |
Typ  Besitzer Gruppe weitere
	  

Der erste Eintrag, in dem der Dateityp angegeben wird, kann einen der folgenden Werte annehmen:

Hinter dieser ersten Angabe kann in jeder der folgenden drei Gruppen eine dieser Angaben verwendet werden:

Wenn bei einer dieser drei Gruppen (Besitzer, Gruppe oder weitere) ein Strich eingetragen ist, bedeutet dies, dass keine bestimmten Zugriffsrechte vergeben wurden.

Nun sollen die Berechtigungen in der ersten Spalte von sneakers.txt n�her untersucht werden: (Siehe Abbildung 15-17.)

[neuerbenutzer@localhost neuerbenutzer]$ ls -l sneakers.txt
-rw-rw-r--    1 neuerbenutzer neuerbenutzer     150 Mar 19 08:08 sneakers.txt
[neuerbenutzer@localhost neuerbenutzer]$
	  

Abbildung 15-17 Ein n�herer Blick auf die Zugriffsberechtigungen

Der Besitzer der Datei, neuerbenutzer, hat vollst�ndigen Lese- und Schreibzugriff auf die Datei. Da es sich bei der Datei um keine Programmdatei handelt, verf�gt neuerbenutzer nicht �ber die Berechtigung zum Ausf�hren der Datei. Die Gruppe neuerbenutzer verf�gt ebenfalls �ber Lese- und Schreibzugriff auf die Datei sneakers.txt. Analog zum Benutzer neuerbenutzer verf�gt auch die Gruppe neuerbenutzer nicht �ber die Berechtigung zum Ausf�hren der Datei.

Aus der letzten Gruppe von Zugriffsberechtigungen ist ersichtlich, dass alle weiteren Benutzer, also alle, die sich nicht als neuerbenutzer anmelden oder Mitglied der Gruppe neuerbenutzer sind, die Datei zwar lesen k�nnen, jedoch weder in sie schreiben noch die Datei ausf�hren k�nnen.

Mit Hilfe des Befehls chmod k�nnen wir die Zugriffsberechtigungen f�r die Datei �ndern.

Auch jetzt soll sneakers.txt f�r das Arbeiten mit dem Befehl chmod als Beispiel verwendet werden.

Die urspr�nglichen Zugriffsberechtigungen f�r die Datei sehen wie folgt aus:

-rw-rw-r--    1 neuerbenutzer neuerbenutzer     150 Mar 19 08:08 sneakers.txt
	  

Als Besitzer der Datei - oder als Root - haben Sie die M�glichkeit, die Berechtigungen f�r den Besitzer, die Gruppe und alle weiteren Benutzer beliebig festzulegen.

Zum jetzigen Zeitpunkt haben der Besitzer (also Sie) und die zugeh�rige Gruppe (also neuerbenutzer) Lese- und Schreibzugriff auf die Datei.

Jeder Benutzer au�erhalb der Gruppe kann die Datei lediglich lesen (r--).

AchtungBerechtigungen sind notwendig
 

Bitte beachten Sie in diesem Zusammenhang, dass Zugriffsrechte auf Dateien f�r die Sicherheit Ihres Systems von gro�er Bedeutung sind. Wenn Sie jedem Lese- und Schreibzugriff auf Dateien und das Recht zum Ausf�hren von Programmdateien einr�umen, besteht die Gefahr von Sch�den an Ihrem System durch die unsachgem��e �nderung von Dateien. Daher sollten Sie generell eher sparsam mit der Vergabe von Lese- und Schreibrechten umgehen.

In diesem Fall gehen wir jedoch davon aus, dass jeder Benutzer das Recht haben sollte, in diese Datei zu schreiben, die Datei zu lesen, Anmerkungen darin zu erstellen und die Datei zu speichern. Dies bedeutet, dass der Abschnitt f�r die weiteren Benutzer im Hinblick auf die Zugriffsrechte auf die Datei ge�ndert werden muss.

Da Sie ja selbst der Besitzer der Datei sind, ist die Eingabe des Befehls su f�r die Anmeldung als Root nicht erforderlich. Zuerst wollen wir uns jedoch die Datei n�her anschauen. Geben Sie am Shell Prompt folgenden Befehl ein:

ls -l sneakers.txt
	  

Dadurch erhalten wir die folgenden Informationen zu dieser Datei:

-rw-rw-r--    1 neuerbenutzer neuerbenutzer     150 Mar 19 08:08 sneakers.txt
	  

Geben Sie nun den folgenden Befehl ein:

chmod o+w sneakers.txt
	  

Um das Ergebnis dieses Befehls zu �berpr�fen, k�nnen wir jetzt wieder die detaillierten Informationen zur Datei anzeigen. Die Datei sieht nun wie folgt aus:

-rw-rw-rw-    1 neuerbenutzer neuerbenutzer     150 Mar 19 08:08 sneakers.txt
	  

Wir haben also Folgendes erreicht: Jeder Benutzer hat jetzt Lese- und Schreibzugriff auf die Datei (Abbildung 15-18).

Abbildung 15-18 �ndern der Zugriffsrechte f�r sneakers.txt

Bei der Eingabe von o+w haben wir dem System gewisserma�en mitgeteilt, dass es k�nftig auch anderen Benutzern Schreibrechte f�r die Datei sneakers.txt einr�umen soll.

Um die Zugriffsrechte auf die Datei sneakers.txt aufzuheben (selbst wenn es sich bei dieser Datei lediglich um eine Einkaufsliste handelt), kann wiederum der Befehl chmod verwendet werden. Geben Sie Folgendes ein:

chmod go-rw sneakers.txt
	  

Daraufhin erhalten Sie folgendes Ergebnis:

-rw-------    1 neuerbenutzer neuerbenutzer    150 Mar 19 08:08 sneakers.txt
	  

Durch die Eingabe von go-rw haben wir dem System mitgeteilt, dass f�r die Gruppe und alle weiteren Benutzer der Lese- und Schreibzugriff auf die Datei sneakers.txt aufgehoben werden soll.

Diese Optionen stellen eine Art von vereinfachter Schreibweise f�r das �ndern von Zugriffsrechten mit chmod dar, da Sie sich nur einige Symbole und Buchstaben f�r die Verwendung mit dem Befehl chmod einpr�gen m�ssen.

In der folgenden Liste erhalten Sie einen �berblick �ber diese Optionen:

Identit�ten

u - der Benutzer, der Besitzrechte an der Datei hat (also der Besitzer)

g - die Gruppe, der der Benutzer angeh�rt

o - weitere (nicht der Besitzer oder die Gruppe des Besitzers)

a - alle (u, g und o)

Zugriffsberechtigungen

r - Lesezugriff

w- Schreibzugriff

x - Rechte f�r das Ausf�hren von Dateien

Aktionen

+ - f�gt die Berechtigung hinzu

- - entfernt die Berechtigung

= - macht es zur einzigen Berechtigung

M�chten Sie die Befehle gleich ausprobieren? Entfernen wir doch einfach mal alle Zugriffsrechte von sneakers.txt f�r alle Benutzer.

chmod a-rw sneakers.txt
	  

Jetzt versuchen wir gleich, ob wir diese Datei noch lesen k�nnen:

[neuerbenutzer@localhost neuerbenutzer]$ cat sneakers.txt
cat: sneakers.txt: Permission denied
[neuerbenutzer@localhost neuerbenutzer]$
	  

Es scheint also wirklich zu funktionieren - selbst Sie k�nnen die Datei nicht mehr �ffnen. Da Sie jedoch der Besitzer der Datei sind, k�nnen Sie sich jederzeit selbst wieder durch �ndern der Berechtigungen Lese- und Schreibzugriff einr�umen. (Siehe Abbildung 15-19).

[neuerbenutzer@localhost neuerbenutzer]$ chmod u+rw sneakers.txt
[neuerbenutzer@localhost neuerbenutzer]$ cat sneakers.txt
kaufen Sie Turnschuhe
gehen Sie dann in den Supermarkt
kaufen Sie dann eine Packung Kaffee
bringen Sie den Kaffee nach Hause
ziehen Sie die Schuhe aus
ziehen Sie die Turnschuhe an
machen Sie etwas Kaffee
ruhen Sie sich aus!
[neuerbenutzer@localhost neuerbenutzer]$
	  

Abbildung 15-19 Entfernen und sp�teres Wiederherstellen von Zugriffsberechtigungen

Hier erhalten Sie einige Beispiele f�r Einstellungen in Verbindung mit chmod:

Durch Hinzuf�gen der Option -R ist es m�glich, die Berechtigungen f�r ganze Verzeichnisb�ume zu �ndern.

Allerdings mit der Einschr�nkung, dass es nat�rlich nicht m�glich ist, ein Verzeichnis in der gleichen Weise wie eine Datei "auszuf�hren". Wenn wir die Berechtigungen f�r das Ausf�hren bei einem Verzeichnis hinzuf�gen oder entfernen, �ndern wir eigentlich nur die Berechtigung zum Durchsuchen des Verzeichnisses.

Um jedem Benutzer Lese- und Schreibzugriff auf das Verzeichnis tigger in unserem Anmeldeverzeichnis einzur�umen, m�ssen Sie lediglich folgenden Befehl eingeben:

chmod -R a+rw tigger
	  

Aber… wenn wir anderen Benutzern keine Rechte zum Ausf�hren f�r tigger einr�umen, spielt es keine Rolle, ob jemand �ber Lese- oder Schreibzugriff verf�gt, da niemand auf dieses Verzeichnis zugreifen kann - es sei denn, er kennt den genauen Dateinamen der entsprechenden Datei.

Geben wir beispielsweise folgenden Befehl ein:

chmod a-x tigger
	  

Daraufhin wird die Berechtigung zum Ausf�hren global entfernt.

Wenn wir nun versuchen, mit cd in das Verzeichnis tigger zu wechseln, passiert Folgendes:

[neuerbenutzer@localhost neuerbenutzer]$ cd tigger
bash: tigger: Permission denied
[neuerbenutzer@localhost neuerbenutzer]$
	  

Nun k�nnen wir wieder den Zugriff f�r uns und unsere Gruppe wiederherstellen.

chmod ug+x tigger
	  

Wenn wir jetzt unsere Eingabe mit ls -dl �berpr�fen, stellen wir fest, dass nur die anderen Benutzer weiterhin keine Zugriffsrechte auf tigger besitzen.