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-Konto wechseln. Hierzu müssen
Sie lediglich su eingeben, wie Sie bereits
zuvor gelernt haben. Der Grund hierfür liegt darin,
daß jeder Benutzer, der das Root-Paßwort 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, daß 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 Benutzerkontos
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 13-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. Wie
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).
 | Ihre Standardgruppe |
|---|
| | Beachten Sie bitte, daß standardmäßig
für die Gruppe der von Ihnen gewählte Anmeldename
vergeben wurde.
|
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:
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:
r - Lesezugriff auf die Datei
w - Schreibzugriff auf die Datei
x - Datei kann
ausgeführt werden (bei Programmdateien)
Wenn bei einer dieser drei Gruppen (Besitzer, Gruppe oder
weitere) ein Strich eingetragen ist, bedeutet dies, daß
keine bestimmten Zugriffsrechte vergeben wurden.
Nun sollen die Berechtigungen in der ersten Spalte von
sneakers.txt näher untersucht werden:
(Siehe Abbildung 13-17.)
[neuerbenutzer@localhost neuerbenutzer]$ ls -l sneakers.txt
-rw-rw-r-- 1 neuerbenutzer neuerbenutzer 150 Mar 19 08:08 sneakers.txt
[neuerbenutzer@localhost neuerbenutzer]$
|
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, daß 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 - also beispielsweise
jeder Benutzer in der Gruppe adm - kann die Datei lediglich
lesen ( r--).
 | Berechtigungen sind notwendig |
|---|
| | Bitte beachten Sie in diesem Zusammenhang, daß
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, daß 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, daß der Abschnitt für
die weiteren Benutzer im Hinblick auf die Zugriffsrechte auf die
Datei geändert werden muß.
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:
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:
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
Abbildung 13-18).
Bei der Eingabe von o+w haben wir dem System
gewissermaßen mitgeteilt, daß 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 diese
Datei wirklich keine geheimen Daten enthält), kann wiederum
der Befehl chmod verwendet werden. Geben Sie
folgendes ein:
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, daß 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.
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 Lese- und Schreibzugriff einräumen. (Siehe
Abbildung 13-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]$
|
Hier erhalten Sie einige Beispiele für Einstellungen in
Verbindung mit chmod:
g+w - Schreibzugriff wird für die
Gruppe hinzugefügt
o-rwx - alle Berechtigungen für
andere Benutzer werden entfernt
u+x - der Besitzer der Datei erhält
die Rechte zu deren Ausführen
a+rw - alle erhalten Lese- und
Schreibzugriff auf die Datei
ug+r - Besitzer und Gruppe erhalten
Leserechte an der Datei
g=rx - die Gruppe erhält das Recht
zum Lesen und Ausführen der Datei (kein Schreibzugriff)
Durch Hinzufügen der Option -R ist es
möglich, die Berechtigungen für ganze
Verzeichnisbäume zu ändern.
Allerdings mit der Einschränkung, daß 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:
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 die Dateien in diesem Verzeichnis
zugreifen kann - es sei denn, er kennt den genauen Dateinamen
der entsprechenden Datei.
Geben wir beispielsweise folgenden Befehl ein:
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.
Wenn wir jetzt unsere Eingabe mit ls -dl
überprüfen, stellen wir fest, daß nur die
anderen Benutzer weiterhin keine Zugriffsrechte auf tigger
besitzen.