Berechtigungen und Rechte unter Linux

Wie viele von uns mussten den Zugriff auf die in einem bestimmten Verzeichnis / Ordner enthaltenen Dateien „einschränken“ oder müssen lediglich verhindern, dass einige Personen den Inhalt einer bestimmten Datei anzeigen, löschen oder ändern? Mehr als eine, richtig? Können wir es in unserem geliebten Pinguin erreichen? Die Antwort ist: Natürlich ja : D.

Einführung

Viele von uns, die aus Windows stammen, waren es gewohnt, mit diesem "Problem" auf ganz andere Weise umzugehen. Um dieses Ziel zu erreichen, mussten wir auf unorthodoxe "Techniken" zurückgreifen, z. B. das Verstecken der Datei durch ihre Attribute und das Verschieben unserer Informationen an den entferntesten Ort unseres Teams (innerhalb von 20,000 Ordnern), um zu versuchen, unseren "feindlichen" XD davon abzubringen, die Dateierweiterung oder die "häufigste" Vorgehensweise zu ändern oder zu entfernen, laden Sie ein Programm herunter, mit dem wir " Schließen Sie unser Verzeichnis hinter einem schönen Dialogfeld, in dem Sie nach einem Kennwort für den Zugriff gefragt werden. Wir hatten eine viel bessere Alternative? Nein.

btrfs
Verwandte Artikel:
So mounten Sie Festplatten oder Partitionen über ein Terminal

Es tut mir sehr leid für meine "Windoleros" -Freunde (ich sage es mit großer Zuneigung, damit niemand beleidigt ist, ok?;)), Aber heute muss ich mir ein bisschen Windows: P beibringen, da ich erklären werde, warum Dieses Betriebssystem erlaubt keine native diese Funktionalität.

Wie vielen von Ihnen ist aufgefallen, dass wir, wenn wir hinter einem „Windows“ -Computer sitzen (auch wenn es nicht unserer ist), automatisch Eigentümer von allem werden, was der Computer enthält (Bilder, Dokumente, Programme usw.)? Was meine ich? Durch einfaches "Steuern von Windows" können wir Ordner und Dateien nach links und rechts kopieren, verschieben, löschen, erstellen, öffnen oder ändern, unabhängig davon, ob wir die "Eigentümer" dieser Informationen sind oder nicht. Dies spiegelt eine große Sicherheitslücke im Betriebssystem wider, oder? Dies ist alles, weil die Betriebssysteme von Microsoft nicht von Grund auf für Mehrbenutzer konzipiert wurden. Als die Versionen von MS-DOS und einige Versionen von Windows veröffentlicht wurden, vertrauten sie voll und ganz darauf, dass der Endbenutzer für die "Bewachung" seines jeweiligen Computers verantwortlich ist, sodass kein anderer Benutzer Zugriff auf die darin gespeicherten Informationen hatte ... naiv werden ¬ ¬. Jetzt WinUsers Freunde, Sie wissen, warum es dieses "Geheimnis" gibt: D.

Andererseits ist GNU / Linux, ein System, das grundlegend für die Vernetzung entwickelt wurde, die Sicherheit der Informationen, die wir auf unseren Computern speichern (ganz zu schweigen von den Servern), von entscheidender Bedeutung, da viele Benutzer Zugriff darauf haben oder haben können Teil der Softwareressourcen (sowohl Anwendungen als auch Informationen) und Hardware, die auf diesen Computern verwaltet werden.

Jetzt können wir sehen, warum ein Genehmigungssystem erforderlich ist. Kommen wir zum Thema;).

Verwandte Artikel:
DU: Anzeigen der 10 Verzeichnisse, die den meisten Speicherplatz beanspruchen

In GNU / Linux werden die Berechtigungen oder Rechte, die Benutzer für bestimmte darin enthaltene Dateien haben können, in drei klar differenzierten Ebenen festgelegt. Diese drei Ebenen sind wie folgt:

Erlaubnis des Besitzers.
Gruppenberechtigungen.
Berechtigungen der übrigen Benutzer (oder auch "die anderen" genannt).

Um diese Konzepte klar zu machen, gibt es in Netzwerksystemen (wie dem Pinguin) immer die Figur des Administrators, Superusers oder Root. Dieser Administrator ist dafür verantwortlich, Benutzer zu erstellen und zu entfernen sowie die Berechtigungen festzulegen, über die jeder von ihnen im System verfügt. Diese Berechtigungen werden sowohl für das HOME-Verzeichnis jedes Benutzers als auch für die Verzeichnisse und Dateien eingerichtet, auf die der Administrator zugreifen kann.

Besitzerberechtigungen

Der Eigentümer ist der Benutzer, der eine Datei / einen Ordner in seinem Arbeitsverzeichnis (HOME) oder in einem anderen Verzeichnis, für das er Rechte hat, generiert oder erstellt. Jeder Benutzer kann standardmäßig die gewünschten Dateien in seinem Arbeitsverzeichnis erstellen. Im Prinzip ist er und nur er derjenige, der Zugriff auf die Informationen hat, die in den Dateien und Verzeichnissen in Ihrem HOME-Verzeichnis enthalten sind.

Gruppenberechtigungen

Das Normalste ist, dass jeder Benutzer einer Arbeitsgruppe angehört. Auf diese Weise werden beim Verwalten einer Gruppe alle zu ihr gehörenden Benutzer verwaltet. Mit anderen Worten, es ist einfacher, mehrere Benutzer in eine Gruppe zu integrieren, denen bestimmte Berechtigungen im System gewährt wurden, als die Berechtigungen jedem Benutzer unabhängig zuzuweisen.

Berechtigungen der übrigen Benutzer

Schließlich können die Berechtigungen der in einem Verzeichnis enthaltenen Dateien auch von anderen Benutzern gehalten werden, die nicht zu der Arbeitsgruppe gehören, in die die betreffende Datei integriert ist. Mit anderen Worten, Benutzer, die nicht zu der Arbeitsgruppe gehören, in der sich die Datei befindet, sondern zu anderen Arbeitsgruppen gehören, werden als andere Systembenutzer bezeichnet.

Sehr schön, aber wie kann ich das alles identifizieren? Öffnen Sie einfach ein Terminal und gehen Sie wie folgt vor:

$ ls -l

Hinweis: Es handelt sich um Kleinbuchstaben „L“ 

Es wird ungefähr so ​​aussehen:

Wie Sie sehen können, zeigt dieser Befehl den Inhalt meines HOME an oder "listet" ihn auf. Wir haben es mit den roten und grünen Linien zu tun. Das rote Feld zeigt uns, wer der Eigentümer ist, und das grüne Feld zeigt an, zu welcher Gruppe die zuvor aufgelisteten Dateien und Ordner gehören. In diesem Fall werden sowohl der Eigentümer als auch die Gruppe "Perseus" genannt, aber sie haben möglicherweise eine andere Gruppe wie "Verkäufe" gefunden. Im Übrigen machen Sie sich vorerst keine Sorgen, wir werden später sehen: D.

Arten von Berechtigungen in GNU / Linux

Bevor wir lernen, wie Berechtigungen in GNU / Linux festgelegt werden, müssen wir wissen, wie die verschiedenen Dateitypen, über die das System verfügen kann, unterschieden werden können.

Jede Datei in GNU / Linux wird durch 10 Zeichen identifiziert, die aufgerufen werden Maske. Von diesen 10 Zeichen bezieht sich das erste (von links nach rechts) auf den Dateityp. Die folgenden 9 beziehen sich von links nach rechts und in Dreierblöcken auf die Berechtigungen, die dem Eigentümer, der Gruppe und dem Rest oder anderen erteilt werden. Ein Screenshot, um all diese Dinge zu demonstrieren:

Das erste Zeichen der Dateien kann Folgendes sein:

Entschuldigen Sie Identifizieren
- Archivieren
d Verzeichnis
b Spezielle Blockdatei (Gerätespezialdateien)
c Sonderzeichendatei (tty Gerät, Drucker ...)
l Linkdatei oder Link (weicher / symbolischer Link)
p Kanal-Spezialdatei (Pipe oder Pipe)

Die nächsten neun Zeichen sind die Berechtigungen, die Systembenutzern erteilt wurden. Alle drei Zeichen, die Eigentümer-, Gruppen- und andere Benutzerberechtigungen werden referenziert.

Die Zeichen, die diese Berechtigungen definieren, sind folgende:

Entschuldigen Sie Identifizieren
- Ohne Erlaubnis
r Leseberechtigung
w Schreibberechtigung
x Ausführungsberechtigung

Dateiberechtigungen

Lesen: Grundsätzlich können Sie den Inhalt der Datei anzeigen.
Schreiben: Mit dieser Option können Sie den Inhalt der Datei ändern.
Ausführung: Ermöglicht die Ausführung der Datei, als wäre sie ein ausführbares Programm.

Verzeichnisberechtigungen

Lesen: Hier erfahren Sie, welche Dateien und Verzeichnisse das Verzeichnis mit dieser Berechtigung enthält.
Schreiben: Mit dieser Option können Sie Dateien im Verzeichnis erstellen, entweder normale Dateien oder neue Verzeichnisse. Verzeichnisse können gelöscht, Dateien in das Verzeichnis kopiert, verschoben, umbenannt usw. werden.
Ausführung: Ermöglicht das Durchsuchen des Verzeichnisses, um dessen Inhalt zu überprüfen und Dateien von oder in das Verzeichnis zu kopieren. Wenn Sie auch über Lese- und Schreibberechtigungen verfügen, können Sie alle möglichen Vorgänge für Dateien und Verzeichnisse ausführen.

Hinweis: Wenn Sie nicht über die Ausführungsberechtigung verfügen, können wir nicht auf dieses Verzeichnis zugreifen (selbst wenn wir den Befehl "cd" verwenden), da diese Aktion abgelehnt wird. Es ermöglicht auch die Begrenzung der Verwendung eines Verzeichnisses als Teil eines Pfads (wie wenn wir den Pfad einer Datei in diesem Verzeichnis als Referenz übergeben. Angenommen, wir möchten die Datei "X.ogg" kopieren, die sich in der Ordner "/ home / perseo / Z" - für den der Ordner "Z" keine Ausführungsberechtigung hat - würden wir Folgendes tun:

$ cp /home/perseo/Z/X.ogg /home/perseo/Y/

Wenn Sie eine Fehlermeldung erhalten, die uns mitteilt, dass wir nicht über ausreichende Berechtigungen für den Zugriff auf die Datei verfügen: D). Wenn die Ausführungsberechtigung eines Verzeichnisses deaktiviert ist, können Sie dessen Inhalt anzeigen (wenn Sie über eine Leseberechtigung verfügen), aber Sie können nicht auf eines der darin enthaltenen Objekte zugreifen, da dieses Verzeichnis Teil des erforderlichen Pfads ist um den Ort Ihrer Objekte zu lösen.

Berechtigungsverwaltung in GNU / Linux

Bisher haben wir gesehen, wofür Berechtigungen in GNU / Linux gelten. Im Folgenden erfahren Sie, wie Sie Berechtigungen oder Rechte zuweisen oder entfernen.

Bevor wir beginnen, müssen wir berücksichtigen, dass wir ihm beim Registrieren oder Erstellen eines Benutzers im System automatisch Berechtigungen gewähren. Diese Berechtigungen sind natürlich nicht vollständig, dh die Benutzer haben normalerweise nicht die gleichen Berechtigungen und Rechte wie der Superuser. Wenn der Benutzer erstellt wird, generiert das System standardmäßig die Berechtigungen des Benutzers für die Dateiverwaltung und Verzeichnisverwaltung. Natürlich können diese vom Administrator geändert werden, aber das System generiert mehr oder weniger gültige Berechtigungen für die meisten Vorgänge, die jeder Benutzer für sein Verzeichnis, seine Dateien sowie für die Verzeichnisse und Dateien anderer Benutzer ausführt. Dies sind im Allgemeinen die folgenden Berechtigungen:

<° Für Dateien: - rw-r-- r--
<° Für Verzeichnisse: - rwx rwx rwx

Hinweis: Sie sind nicht für alle GNU / Linux-Distributionen dieselben Berechtigungen.

Mit diesen Berechtigungen können wir Dateien erstellen, kopieren und löschen, neue Verzeichnisse erstellen usw. Lassen Sie uns das alles in der Praxis sehen: D:

Nehmen wir als Beispiel die Datei "Advanced CSS.pdf". Beachten Sie, dass es wie folgt aussieht: -rw-r--r-- … Erweiterte CSS.pdf. Lasst uns genauer hinschauen.

Typ Benutzer Gruppe Restliche Benutzer (andere) Dateiname
- rw- r-- r-- Erweiterte CSS.pdf

Dies bedeutet, dass:

<° Typ: Archivieren
<° Der Benutzer kann: Lesen (Anzeigen von Inhalten) und Schreiben (Ändern) der Datei.
<° Die Gruppe, zu der der Benutzer gehört, kann: Lesen Sie (nur) die Datei.
<° Andere Benutzer können: Lesen Sie (nur) die Datei.

Für diejenigen, die sich im Moment fragen, worauf sich die anderen Felder der von ls -l erhaltenen Liste beziehen, ist hier die Antwort:

Wenn Sie mehr über die harten und weichen / symbolischen Links erfahren möchten, finden Sie hier die Erklärung und ihre diferencias.

Nun Freunde, wir kommen zum interessantesten und schwersten Teil des fraglichen Themas ...

Berechtigungszuweisung

Der Befehl chmod ("Änderungsmodus") ermöglicht das Ändern der Maske, sodass mehr oder weniger Vorgänge für Dateien oder Verzeichnisse ausgeführt werden können. Mit chmod können Sie also Rechte für jeden Benutzertyp entfernen oder entfernen. Wenn der Benutzertyp, dem wir Berechtigungen entfernen, setzen oder zuweisen möchten, nicht angegeben ist, wirkt sich dies bei der Ausführung des Vorgangs auf alle Benutzer gleichzeitig aus.

Das Grundlegende, an das Sie sich erinnern sollten, ist, dass wir Berechtigungen auf diesen Ebenen erteilen oder entfernen:

Parameter Ebene Beschreibung
u Eigentümer Besitzer der Datei oder des Verzeichnisses
g Gruppe Gruppe, zu der die Datei gehört
o andere Alle anderen Benutzer, die nicht Eigentümer oder Gruppe sind

Berechtigungsarten:

Entschuldigen Sie Identifizieren
r Leseberechtigung
w Schreibberechtigung
x Ausführungsberechtigung

 Geben Sie dem Eigentümer die Berechtigung zum Ausführen von:

$ chmod u+x komodo.sh

Entfernen Sie die Ausführungsberechtigung von allen Benutzern:

$ chmod -x komodo.sh

Geben Sie anderen Benutzern Lese- und Schreibrechte:

$ chmod o+r+w komodo.sh

Überlassen Sie der Gruppe, zu der die Datei gehört, nur die Leseberechtigung:

$ chmod g+r-w-x komodo.sh

Berechtigungen im oktal-numerischen Format

Es gibt eine andere Möglichkeit, den Befehl chmod zu verwenden, die für viele Benutzer „komfortabler“ ist, obwohl es a priori etwas komplexer ist, ¬¬ zu verstehen.

Die Wertekombination jeder Benutzergruppe bildet eine Oktalzahl, das "x" -Bit ist 20, das 1 ist, das w-Bit ist 21, das 2 ist, das r-Bit ist 22, das 4 ist, wir haben dann:

r = 4
w = 2
x = 1

Die Kombination von Bits ein oder aus in jeder Gruppe ergibt acht mögliche Wertekombinationen, dh die Summe der Bits ein:

Entschuldigen Sie Oktalwert Beschreibung
- - - 0 Du hast keine Erlaubnis
- - x 1 Nur Berechtigung ausführen
- w - 2 Nur Schreibberechtigung
- wx 3 Schreib- und Ausführungsberechtigungen
r - - 4 Nur Leseberechtigung
r - x 5 Lese- und Ausführungsberechtigungen
rw - 6 Lese- und Schreibberechtigungen
rwx 7 Alle Berechtigungen festlegen, lesen, schreiben und ausführen

Wenn Benutzer-, Gruppen- und andere Berechtigungen kombiniert werden, erhalten Sie eine dreistellige Nummer, aus der die Datei- oder Verzeichnisberechtigungen bestehen. Beispiele:

Entschuldigen Sie Wert Beschreibung
rw- --- -- 600 Der Eigentümer hat Lese- und Schreibberechtigungen
rwx --x --x 711 Der Eigentümer liest, schreibt und führt aus, die Gruppe und andere führen nur aus
rwx rx rx 755 Der Eigentümer, die Gruppe und andere Personen zum Lesen, Schreiben und Ausführen können die Datei lesen und ausführen
rwx rwx rwx 777 Die Datei kann von jedem gelesen, geschrieben und ausgeführt werden
r-- --- -- 400 Nur der Eigentümer kann die Datei lesen, aber er kann sie weder ändern noch ausführen, und natürlich können weder die Gruppe noch andere etwas daran tun.
rw-r-- --- 640 Der Benutzer des Besitzers kann lesen und schreiben, die Gruppe kann Dateien lesen und andere können nichts tun

Besondere Berechtigungen

Es sind noch andere Arten von Genehmigungen zu berücksichtigen. Dies sind das SUID-Berechtigungsbit (Set User ID), das SGID-Berechtigungsbit (Set Group ID) und das Sticky-Bit (Sticky-Bit).

setuid

Das setuid-Bit kann ausführbaren Dateien zugewiesen werden und ermöglicht, dass der Prozess beim Ausführen dieser Datei durch einen Benutzer die Berechtigungen des Eigentümers der ausgeführten Datei erhält. Das deutlichste Beispiel für eine ausführbare Datei mit dem Setuid-Bit ist:

$ su

Wir können sehen, dass das Bit in der folgenden Erfassung als "s" zugewiesen ist:

Um dieses Bit einer Datei zuzuweisen, wäre es:

$ chmod u+s /bin/su

Und um es zu entfernen:

$ chmod u-s /bin/su

Hinweis: Wir müssen dieses Bit mit äußerster Sorgfalt verwenden, da es zu einer Eskalation der Berechtigungen in unserem System führen kann.

setgid

Das setid-Bit ermöglicht das Abrufen der Berechtigungen der der Datei zugewiesenen Gruppe und kann auch Verzeichnissen zugewiesen werden. Dies ist sehr nützlich, wenn mehrere Benutzer derselben Gruppe mit Ressourcen im selben Verzeichnis arbeiten müssen.

Um dieses Bit zuzuweisen, gehen wir wie folgt vor:

$ chmod g+s /carpeta_compartida

Und um es zu entfernen:

$ chmod g-s /carpeta_compartida

klebrig

Dieses Bit wird normalerweise in Verzeichnissen zugewiesen, auf die alle Benutzer Zugriff haben, und verhindert, dass ein Benutzer Dateien / Verzeichnisse eines anderen Benutzers in diesem Verzeichnis löscht, da alle über Schreibrechte verfügen.
Wir können sehen, dass das Bit in der folgenden Aufnahme als "t" zugewiesen ist:

Um dieses Bit zuzuweisen, gehen wir wie folgt vor:

$ chmod o+t /tmp

Und um es zu entfernen:

$ chmod o-t /tmp

Nun Freunde, jetzt wissen Sie, wie Sie Ihre Informationen besser schützen können. Ich hoffe, Sie hören damit auf, nach Alternativen zu suchen Folder Lock o Ordnerschutz dass wir sie in GNU / Linux überhaupt nicht brauchen XD.

P.S: Dieser spezielle Artikel wurde vom Nachbarn des Cousins ​​eines Freundes angefordert. XD, ich hoffe, ich habe Ihre Fragen beantwortet ... 