Wir werden uns in ein Gerät mit Linux-Betriebssystem versetzen und vor einer Terminalsitzung etwas Wichtiges über symbolische Links und das Ändern ihrer Berechtigungen lernen. Insbesondere lernen wir in diesem Handbuch, die Berechtigungen eines symbolischen Links zu ändern, ohne jedoch die Berechtigungen der Ressource zu ändern, mit der er verknüpft ist .
Für die Änderung der Berechtigungen über die Konsole haben wir unter Linux den Befehl chmod
, aber wir werden auch über den Befehl chown
sprechen, mit dem wir den Eigentümer und die Gruppe der Dateien ändern können.
Der Nachteil beim Ändern der Berechtigungen eines symbolischen Links in Linux besteht darin, dass die Berechtigungen der Ressource, die über den symbolischen Link verknüpft sind, ebenfalls geändert werden. Wenn wir zum Beispiel einen Apache-Server installieren , werden die aktiven Websites im sites-enabled
Ordner gespeichert, wodurch symbolische Links zu den entsprechenden Konfigurationsdateien erstellt werden, die sich im sites-available
Ordner befinden.
Was ist ein symbolischer Link in Linux-Umgebungen?
Eine symbolische Verknüpfung in Linux-Umgebungen wird auch als “soft link” bezeichnet und ist nichts anderes als eine spezielle Datei, deren Funktion darin besteht, eine Verknüpfung zu einer anderen Ressource herzustellen. Wir können es mit den so genannten Verknüpfungen im Windows-Betriebssystem abgleichen.
Symbolische Links können auf eine andere Datei verweisen, z. B. auf einen Ordner, eine Netzwerkressource usw. Diese symbolischen Verknüpfungen sind einfache Dateien und werden auch vom Linux-Berechtigungssystem beeinflusst . Daher müssen bei der Verwendung von Befehlen wie chmod
oder chown
bestimmte Vorsichtsmaßnahmen getroffen werden.
So ändern Sie die Berechtigungen eines symbolischen Links, ohne die Berechtigungen der Zielressource des Links zu ändern.
Um diesen Abschnitt korrekt zu erläutern, nehmen wir an, dass wir einen symbolischen Link namens ejemplosim
, der auf die Datei /home/zeokat/ejemplo.txt
.
Wenn ich die symbolischen Link-Berechtigungen ejemplosim
mit dem Befehl chmod
ändern möchte, ohne jedoch die Berechtigungen der chmod
zu ändern, lautet der auszuführende Befehl wie folgt:
chmod -h 644 ejemplosim
Sobald dieser Befehl ausgeführt wird, werden wir feststellen, dass die Berechtigungen des symbolischen Links geändert wurden, nicht jedoch die der Ressource, auf die er verweist.
Derselbe Modifikator -h
kann mit dem Befehl chown wie folgt verwendet werden:
chown -h www-data:www-data ejemplosim
Wir sehen, dass dies etwas Einfaches ist, aber in vielen Fällen kann es die Sicherheit des Systems gefährden. Wir müssen besonders darauf achten, wenn wir Berechtigungen in verschiedenen Verzeichnissen rekursiv ändern, da wir einige symbolische Verknüpfungen ignorieren können, die dazu führen, dass die Berechtigungen der Zielressource auf unerwünschte Weise geändert werden.
Wichtige Überlegungen zu beachten.
Der chmod
-h
chmod
wird nicht auf allen Linux-Betriebssystemen unterstützt . Zum Beispiel in FreeBSD, wenn es unterstützt wird, während dies in Ubuntu nicht der Fall ist. Im Gegensatz dazu unterstützt der Befehl chown
diesen Schalter auf den meisten Systemen.
Wenn ein Linux-System den Schalter -h
mit chmod
nicht unterstützt, liegt dies daran, dass das Ändern von Berechtigungen für symbolische Links nicht unterstützt wird . Wenn wir die Berechtigungen für den symbolischen Link ändern, werden sie daher nur in der verknüpften Ressource geändert . Da dies ein Problem sein kann, werden in diesen Systemen symbolische Links ignoriert , wenn chmod rekursiv angewendet wird .
Auszug aus dem Originaltext der Linux-Hilfeseiten:
chmod ändert niemals die Berechtigungen von symbolischen Links. Der chmod-Systemaufruf kann ihre Berechtigungen nicht ändern. Dies ist kein Problem, da die Berechtigungen von symbolischen Links niemals verwendet werden. Für jeden in der Befehlszeile aufgeführten symbolischen Link ändert chmod jedoch die Berechtigungen der Datei, auf die verwiesen wird. Im Gegensatz dazu ignoriert chmod symbolische Links, die bei rekursiven Verzeichnisdurchläufen auftreten.