Wenn Sie Windows schon eine Weile verwaltet haben, haben Sie wahrscheinlich Erfahrung mit der Verwaltung von Benutzerkonten, dem NTFS-Dateisystem und der Festlegung von Berechtigungen. Wenn ja, bereiten Sie sich auf eine andere Welt mit Linux-Dateiberechtigungen vor! In Linux ist das Dateisystem ein anderes Tier, das Sie beherrschen müssen, um ein kompetenter Linux-Administrator zu sein.
Dies ist Teil II unserer vierteiligen Serie zum Erlernen von Linux aus der Perspektive eines Windows-Administrators! Stellen Sie sicher, dass Sie Teil I lesen, wenn Sie dies noch nicht getan haben.
Arbeiten mit dem Dateisystem
Lassen Sie uns zuerst einmal anschauen, wie Linux Dateien im Dateisystem speichert und verwaltet.
Hinweis: Alle Beispiele werden mit OpenSUSE Linux durchgeführt.
Keine Laufwerksbuchstaben mehr
Anders als in Windows werden Wechseldatenträger und andere Geräte nicht automatisch mit einem Laufwerksbuchstaben versehen und beim Neustart geöffnet. In Windows wird jedem Laufwerk ein Laufwerksbuchstabe zugewiesen: C:\, D:\ usw. Wie funktionieren Laufwerksbuchstaben in Linux? Es gibt keine!
In Linux gibt es einen Ordner namens der Stammverzeichnis. Dieser Ordner befindet sich im Stamm des Dateisystems oder einfach /
. Der Schrägstrich ist der erste Schrägstrich, von dem aus alle anderen Dateien im System stammen. Dieser Schrägstrich ist sozusagen die Basis C:\, allerdings nur, wenn die anderen Laufwerksbuchstaben nur als Unterordner von C:\ existierten.
Das Stammverzeichnis ist der Ort, an dem die Kernsystemdateien liegen. Alles andere, einschließlich anderer Geräte, ist ein Unterordner dieses zentralen Ordners.
Linux verwischt die Grenze zwischen Ordnern und Dateisystemen. Das Linux-Verzeichnis /home ist die Wurzel aller Benutzer „Profile“, ähnlich dem Ordner C:\Benutzer in Windows. In diesem Fall ist /home ein Verzeichnis. „Verzeichnisse“ müssen in Linux jedoch nicht unbedingt Verzeichnisse sein. Sie können auch Speicherpartitionen oder sogar eine separate Festplatte sein. Dieses Konzept ist analog zu Windows-Mountpunkten.
Sie können mehr über Stammverzeichnisse in diesem Artikel erfahren.
Benutzer und Home-Verzeichnisse
Wenn Sie OpenSUSE verwenden, bemerken Sie möglicherweise einen Home-Ordner auf Ihrem Desktop, wie unten gezeigt. Dieser Ordner ist die Linux-Version des Ordners C:\benutzer\<benutzername> oder „Profils“. Der Linux-„Benutzer“-Ordner befindet sich standardmäßig unter /home auf Ihrer Installationsfestplatte.
Im folgenden Beispiel heißt der Benutzer homelab und sein „Profil“ befindet sich in /home/homelab.

In Linux (und Windows) hat der Home-Ordner (oder das Benutzerprofil in Windows) eine Kurzschreibweise mit einer Tilde (~). Wenn Sie etwas wie
"~/Dokumente/blah.txt
sehen, bezieht es sich tatsächlich auf Ihre Datei/home/<benutzername>/Dokumente/blah.txt
.
Groß- und Kleinschreibung ist in Linux wichtig.
Alles in Linux ist Groß- und Kleinschreibung beachtend. Dieses Konzept steht im kompletten Gegensatz zu Windows, wo fast nichts Groß- und Kleinschreibung beachtet.
Zum Beispiel kann, wenn Sie ein Verzeichnis namens /home/homelab haben, ein völlig anderes Verzeichnis /home/Homelab genannt werden. Dieses Konzept erstreckt sich auch auf Befehle. Das Ausführen von cd /home/homelab
unterscheidet sich von CD /home/homelab
(was fehlschlagen sollte).
Als Windows-Benutzer wird Sie dieses Konzept irgendwann verwirren. Seien Sie sehr vorsichtig mit Ihrer Groß- und Kleinschreibung! Sie können unten ein Beispiel für zwei separate Ordner sehen. Der einzige Unterschied zwischen den beiden liegt in der Groß- und Kleinschreibung: In einer Windows-Umgebung ist dies nicht möglich.

Benutzerkonten
Wie Windows hat auch Linux das Konzept von Benutzerkonten, aber sie verhalten sich ein wenig anders. Beginnen Sie zunächst damit, Linux-Benutzerkonten in Bezug auf Ihre vertrauten Windows-Benutzerkonten zu betrachten.
Windows hat einige integrierte Benutzerkonten wie Administrator, das versteckte SYSTEM-Konto, Guest, usw. Windows hat auch verschiedene integrierte Sicherheitsgruppen wie Administratoren, Guests, usw.
Sie können alle Windows-Benutzer und Gruppen über die MMC „Local Users and Groups“ anzeigen, indem Sie das MMC-Snap-Inlusrmgr.msc ausführen.

Windows SIDs
Um Benutzer und Gruppen eindeutig zu identifizieren, bezieht sich Windows auf Benutzer und Gruppen mit etwas namens SID. In Windows können Sie die SID jedes Benutzers und jeder Gruppe finden, indem Sie einige PowerShell-Befehle ausführen.

Jede Windows-Gruppen-SID ist auf allen Windows-Computern gleich. Die integrierten Benutzer SID
s für Windows sind einzigartig. Die Administrator-SID, die Sie auf dem obigen Screenshot sehen, sollte auf jedem Windows-Computer unterschiedlich sein. Jeder zukünftige Benutzer oder jede zukünftige Gruppe, die in Windows erstellt wird, ist einzigartig. Beachten Sie unten die Test-Gruppe. Wenn Sie eine Test-Gruppe auf Ihrem Windows-Computer erstellen würden, wäre die SID unterschiedlich.

Linux-Benutzer-IDs
Andererseits behandelt Linux Benutzer und Gruppen ähnlich, nur dass Linux diesmal keine SIDs, sondern Benutzer-IDs (UIDs) und Gruppen-IDs (GIDs) verwendet. Anders als bei Windows sind Benutzer und Gruppen einzigartig für den Computer, aber nicht einzigartig für alle Computer. Das bedeutet, dass Ihre UID auf Computer A genau die gleiche sein könnte wie auf Computer B, auch wenn es nicht der gleiche Benutzer ist.
Sowohl UIDs als auch GIDs folgen einer einfachen numerischen Konvention; jede UID und GUID beginnt bei 0 und erhöht sich um eins im Bereich von 1-999 für interne Systemkonten und 1000+ für benutzerdefinierte Benutzerkonten.
Der integrierte Root-Benutzer hat immer eine UID von 0 und eine GID von 0. Auch wie das versteckte SYSTEM-Konto von Windows, ist dieses Root-Konto normalerweise (je nach Linux-Distribution) daran gehindert, sich anzumelden.
Der integrierte Root-Benutzer ähnelt den in Windows integrierten SYSTEM- und Administrator-Benutzerkonten, irgendwie in einem vereint. Auch wenn Sie als Administrator in Windows arbeiten, gibt es immer noch einige eingebaute Sicherheitsvorkehrungen, um zu verhindern, dass Sie Windows vollständig zerstören.
Der Root-Benutzer hingegen ist eine absolute Autorität. Wenn Sie absichtlich zum Root-Benutzer wechseln (Sie können dies über die Befehlszeile mit dem Befehl
sudo su
tun) und versuchen, Ihr gesamtes Betriebssystem zu löschen, wird Root dies gerne tun, bis das System stirbt.
Angenommen, Sie haben einen Benutzer namens homelab erstellt. Die UID für homelab könnte dann entweder durch 1000 oder durch homelab referenziert werden. Der Benutzer wird automatisch Mitglied der internen Gruppe users, auf die Sie mit der Gruppen-ID 100 verweisen können. Eine Liste dieser Zuordnungen finden Sie, indem Sie den Befehl getent passwd
wie unten gezeigt ausführen:

getent passwd
inside the terminalSie können auch die gleichen Informationen wie oben für Gruppen mit dem Befehl getent group
finden.

getent group
inside the terminalLinux-Dateiberechtigungen
In einer Windows-Welt machen Dateiberechtigungen keinen Spaß. Das Festlegen und Verwalten von Berechtigungen in NTFS kann manchmal zu einem Albtraum mit ACE, ACLs, Vererbung, Propagation usw. werden. Glücklicherweise sind Dateiberechtigungen in Linux-Dateisystemen viel einfacher.
In Linux haben Sie drei Arten von Rechten, die Sie einer Datei zuweisen können: Lesen, Schreiben und Ausführen, mit drei Kategorien von Zugriff: Eigentümer, Gruppe, Andere.
- Eigentümer ist der Benutzer, dem die Datei/der Ordner gehört. Jede Datei oder jeder Ordner hat einen bestimmten Eigentümer.
- Gruppe ist die Gruppe, der die Datei/der Ordner gehört. Dies muss nicht dieselbe Gruppe sein, zu der der Eigentümer gehört. Jede Datei oder jeder Ordner kann nur zu einer Gruppe gehören.
- Andere sind… nun ja… andere. Das sind Leute, die nicht zur Besitzgruppe gehören oder nicht der bestimmte Eigentümer sind.
Du kannst jede Option für jede Kategorie erlauben oder verweigern. Als Beispiel: Du kannst Lese-, Schreib- und Ausführungsoptionen für den Besitzer festlegen, sowie Lese- und Ausführungsoptionen für die Gruppe und andere. Dies kannst du im Screenshot unten sehen. Das bedeutet, dass jeder außer dem Benutzer, der der Besitzer des Ordners ist, ihn nicht ändern kann.
Genau wie im Windows Explorer kannst du diese Informationen in Ubuntu sehen, indem du folgendes machst:
- Öffne deinen Home-Ordner auf dem Desktop.
- Navigiere zu der Datei/dem Ordner in Frage.
- Klicke mit der rechten Maustaste auf die Datei/den Ordner und wähle Eigenschaften.
- Klicke auf den Tab Berechtigungen.
- Klicke auf Erweiterte Berechtigungen.
Wenn du im Feld Erweiterte Berechtigungen bist, kannst du grafisch alle Berechtigungen sehen, die dieser Datei oder diesem Ordner zugewiesen sind.

Unten wird dargestellt, was die Tabelle Erweiterte Berechtigungen repräsentiert.

Dateibesitz
Wie in Windows hat jede Datei und jeder Ordner einen Besitzer. In Windows kannst du im GUI oder über den Befehl takeown Besitz von einer Datei ergreifen. In Linux übernimmst du den Besitz, indem du den Befehl chown <Benutzer>:<Gruppe> <Datei/Ordner>
auf der Befehlszeile ausführst.
Wie in Windows benötigst du in der Regel Administratorrechte, um den Besitz von Dateien zu ändern, indem du sudo verwendest. sudo entspricht bei Linux der Benutzerkontensteuerung (UAC) von Windows. Anstatt ein administratives Befehlszeilenfenster zu öffnen, setzt du Befehle mit sudo vor, um sie als Administrator auszuführen.
Lassen Sie uns einen Ordner erstellen, der nur vom Root-Benutzer besessen wird, um einige dieser Konzepte zu demonstrieren.
- Öffnen Sie Ihren Home-Ordner und navigieren Sie zu Dokumente
- Öffnen Sie ein Terminal durch Rechtsklick -> Aktionen -> Hier Terminal öffnen und führen Sie folgendes aus:

Dieser Ordner hat nur Lese-/Schreib-/Ausführungsberechtigungen für den Besitzer. Da Sie den Ordner mit Administrationsrechten erstellt haben, ist der aktuelle Besitzer Root.
Sie haben auch die Berechtigungen geändert, so dass nur der Besitzer Zugriff hat. Die Besitzergruppe und andere Benutzer können nicht auf diesen Ordner zugreifen. Tatsächlich werden Sie feststellen, dass der Ordner ein großes Schloss hat, das darauf hinweist, dass Sie keinen Zugriff haben.
Unten sehen Sie, wie Sie den Besitz dieses Ordners übernehmen können.
- Öffnen Sie ein weiteres Terminal in diesem Ordner (oder verwenden Sie das, das Sie bereits hatten)
- Führen Sie
sudo chown homelab:users ./owned-by-root
aus

Jetzt, da Sie den Besitz haben, können Sie auch die Dateiberechtigungen im Explorer-GUI mithilfe des Eigenschaftenfensters ändern.

Sie möchten (normalerweise) nur Besitztümer ändern, nicht Dateiberechtigungen. Linux ist ziemlich gut darin zu wissen, welche Berechtigungen Dinge standardmäßig haben sollen. Sie können wirklich Probleme verursachen, indem Sie „chmoden“, ohne die Auswirkungen zu kennen.
Numerische Notation für Dateiberechtigungen
Wenn Sie irgendwelche Linux-Fehlerbehebungen durchgeführt haben, haben Sie möglicherweise gesehen, dass Leute online Dateiberechtigungen mit einem Zahlenplan erklären. Sie können das im untenstehenden Screenshot sehen:

Linux verwendet eine Kurzschreibweise für dieses Zugriffssystem mit Zahlen, wie 0600. Die erste Zahl steht für einige spezielle Eigenschaften, die Sie hinzufügen können, die die meisten Leute im Allgemeinen ignorieren. Tatsächlich verwenden die meisten Leute nur drei Ziffern für die Notation und ignorieren die führende vierte.
Für weitere Informationen zur numerischen Notation für Dateiberechtigungen, lesen Sie diesen Artikel.
Zusammenfassung
Das war es für Teil II unserer Blog-Serie „Ein Windows-Typ in einer Linux-Welt“! Stellen Sie sicher, dass Sie den Schwung mit Teil III aufrechterhalten!
Source:
https://adamtheautomator.com/linux-file-permissions/