GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwalten Sie Linux-Berechtigungen für Benutzer, Gruppen und andere

Die Verwaltung des Zugriffs auf Ressourcen ist eine grundlegende Aufgabe für Systemadministratoren. Diese Verantwortung besteht aus drei Komponenten:Identitäten, Ressourcen und Berechtigungen. Dieser Artikel behandelt mehrere Benutzer-, Gruppen- und Dateiverwaltungsbefehle zum Steuern des Zugriffs auf Ressourcen. Der Artikel verwendet ein "Wie kann ich ...?" Format, und es wird davon ausgegangen, dass Sie über einige Ressourcen verfügen, mit denen Sie arbeiten können. Insbesondere decke ich die folgenden Themen ab:

  • Verzeichnisse und Dateien erstellen
  • Eigentümerschaft und zugehörige Gruppen verwalten
  • Festlegen von Berechtigungen mit absoluten und symbolischen Modi

Einen Spielplatz einrichten

Ich bin seit etwa 25 Jahren in der IT tätig und habe die meiste Zeit als technischer Trainer verbracht. Das bedeutet, dass die Dinge, die ich schreibe, normalerweise als eine Art Labor oder andere praktische Gelegenheit strukturiert sind. So decke ich Material ab. In Anbetracht dessen gehe ich davon aus, dass Sie einige Identitäten und Ressourcen haben, mit denen Sie experimentieren können, während Sie den Rest des Artikels lesen. Sie können die folgenden Befehle verwenden, um einen Playground einzurichten. Am besten tun Sie dies auf einer virtuellen Maschine und nicht auf Ihrer persönlichen Linux-Box, aber diese Aufgaben sind relativ harmlos.

Erstellen Sie zwei neue Benutzer und zwei neue Gruppen, mit denen Sie arbeiten können. Beachten Sie, dass Sie in dieser Übung keine Passwörter für die Benutzer konfigurieren müssen, da Sie sich nicht mit diesen Konten anmelden.

# useradd user01
# useradd user02
# groupadd groupA
# groupadd groupB

Hinweis :Sie würden den passwd user01 verwenden Befehl, um das Passwort des Benutzers festzulegen.

Erstellen Sie in Ihrem Home-Verzeichnis ein neues Verzeichnis mit dem Namen playground :

# mkdir playground

Wechseln Sie in den ~/playground Verzeichnis mit cd Befehl. Sie können nun mit den folgenden Befehlen und Konzepten arbeiten.

Wenn Sie den Artikel abgeschlossen und die von mir behandelten Techniken erlernt haben, löschen Sie die beiden Benutzerkonten, die Gruppen und das Playground-Verzeichnis. Verwenden Sie rm -fR /playground , userdel user01 , und groupdel groupA um die Ressourcen zu entfernen.

Wie erstelle ich Verzeichnisse und Dateien?

Verwenden Sie das mkdir Befehl zum Erstellen von Verzeichnissen. Die touch Der Befehl ist eine von vielen Möglichkeiten, Dateien zu erstellen.

Wie erstelle ich ein Verzeichnis namens Resources ?

# mkdir Resources

Wie erstelle ich einen Verzeichnispfad (eine Reihe von Verzeichnissen, die noch nicht existieren)?

# mkdir -p Resources/data/2020data

Hinweis :Das Ziel hier ist, die 2020data zu erstellen Verzeichnis, sondern die data des angegebenen Pfads Verzeichnis existiert noch nicht. Das -p Option erstellt nach Bedarf übergeordnete Verzeichnisse, um den Pfad zu vervollständigen.

Wie erstelle ich eine Datei namens file1 ?

# touch file1

Wie erstelle ich mehrere Dateien auf einmal?

# touch file2 file3 file4

Wie verwalte ich Eigentümerschaft und Gruppen?

Zeigen Sie im Playground-Verzeichnis den aktuellen Besitzer und die Gruppe an, die mit den Resources verknüpft sind Verzeichnis und die Dateien.

Wie zeige ich Berechtigungen, Eigentümer und Gruppen an?

# ls -l

Der ls -l Der Befehl zeigt Verzeichnisinhalte im Langformat an. Das lange Format enthält sowohl Berechtigungen als auch Eigentum. Sie können sehen, dass das Benutzerkonto, das die Ressourcen erstellt hat, diese Ressourcen auch besitzt. Die Gruppenverknüpfung ist auch die primäre Gruppe dieses Benutzers.

Wie ändere ich den Benutzer/Eigentümer, der file1 zugeordnet ist ?

# chown user02 file1

Wie ändere ich die mit file1 verknüpfte Gruppe ?

# chown :groupA file1

Wie ändere ich den Eigentümer und die Gruppe gleichzeitig für file2 ?

# chown user02:groupA file2

Es gibt eine bestimmte chgrp Befehl, aber ich bevorzuge es, mir nur einen Befehl zu merken (chown ) und wenden Sie es auf beide Funktionen (Benutzer- und Gruppenzuordnungen) anstatt auf chown an für den Benutzer und muss dann chgrp aufrufen für die Gruppe.

Wie verwende ich also chgrp ?

# chgrp groupB file1

Wie ändere ich den Benutzer/die Gruppe für ein Verzeichnis und seinen gesamten Inhalt?

# chown -R user01:groupA Resources

Die obige Aufgabe stellt eine rekursive bereit Aufbau. Technisch gesehen werden rekursive Befehle für jedes angegebene Objekt wiederholt. Effektiv bedeutet rekursiv „dies und alles darin“. Im obigen Beispiel konfigurieren Sie den zugehörigen Benutzer/die zugehörige Gruppe für die Resources Verzeichnis und alles darin. Ohne das -R Option würden Sie nur die Resources beeinflussen Verzeichnis selbst, aber nicht seinen Inhalt.

[ Den Lesern gefiel auch: An Introduction to Linux Access Control Lists (ACLs) ]

Wie verwalte ich Berechtigungen?

Der Änderungsmodus oder chmod Befehl setzt Berechtigungen. Die Syntax ist einfach:

chmod permissions resource-name

Hier sind zwei Beispiele für die Manipulation von Berechtigungen für file2 :

# chmod 740 file2
# chmod u=rwx,g=r,o-rwx file2

Aber warte! Das scheinen radikal andere Beispiele zu sein (das sind sie eigentlich nicht). Was bedeuten all diese Buchstaben und Zahlen?

Wir müssen den absoluten Modus besprechen und symbolischer Modus .

Wie verwende ich den absoluten Modus?

Der absolute Modus ist eine von zwei Möglichkeiten, Berechtigungen anzugeben. Ich habe gesehen, dass dieser Modus als oktaler oder numerischer Modus bezeichnet wird, aber der Begriff, den ich gelernt habe, war absolut . Dieser Begriff macht für mich auch am meisten Sinn, weil es eine absolute Aussage über die gewünschten Berechtigungen ist. Ich habe meinen Schülern immer gesagt, dass dies der komplexeste der beiden Modi zu sein scheint, aber eigentlich der einfachste ist. Normalerweise stimmten sie zu.

Jede Zugriffsebene (Lesen, Schreiben, Ausführen) hat einen Oktalwert:

Zugriffsebene Oktalwert
Lesen 4
Schreiben 2
Ausführen 1

Jede Identität (Benutzer, Gruppe, andere) hat eine Position:

Identität Position
Benutzer Erste oder ganz links
Gruppe Mitte
Andere Zuletzt oder ganz rechts

Die Syntax des absoluten Modus gibt die gewünschten Berechtigungen von links nach rechts an.

Wie gewähre ich dem Benutzer (Eigentümer) lesen, schreiben und ausführen, der Gruppe nur lesen und allen anderen keinen Zugriff auf file2 durch Verwendung des absoluten Modus?

# chmod 740 file2

Die drei Berechtigungswerte sind Identitäten zugeordnet:
    ugo
    740

  • Die 7 wird dem Benutzer zugewiesen und ist die Summe aus 4+2+1 oder Lesen+Schreiben+Ausführen (Vollzugriff)
  • Die 4 wird der Gruppe zugewiesen und ist die Summe von 4+0+0 (schreibgeschützt)
  • Die 0 ist anderen zugeordnet und ist die Summe aus 0+0+0 (kein Zugriff)

In diesem Beispiel hat der Benutzer rwx , die Gruppe hat r nur, und alle anderen haben keinen Zugriff zu file2 .

Schauen wir uns ein weiteres Beispiel an.

Wie erteile ich dem Benutzer (Eigentümer) Lese- und Schreibzugriff, der Gruppe Lesezugriff und allen anderen Lesezugriff auf file2 ?

# chmod 644 file2
  • Der Benutzer hat 6 (lesen und schreiben)
  • Die Gruppe hat 4 (schreibgeschützt)
  • Alle anderen haben 4 (schreibgeschützt)

Ich finde das einfacher, weil es keine Berechnungen gibt. Es geht mir nicht darum, bestimmte Berechtigungen basierend auf den aktuellen Einstellungen hinzuzufügen oder zu entfernen. Stattdessen sage ich:„Stellen Sie die Berechtigungen so ein“, und das ist das Endergebnis, das ich erhalte. Es ist eine absolute Aussage.

Wie lege ich Berechtigungen für die Resources fest Verzeichnis und seinen gesamten Inhalt im absoluten Modus?

# chmod -R 744 Resources

Wie verwende ich den symbolischen Modus?

Der symbolische Modus verwendet mehr Symbole, aber die Symbole sind einfacher zu verstehen. Das ist attraktiv für Systemadministratoren, die noch keine Erfahrung mit Standard-Linux-Berechtigungen haben.

Jede Zugriffsebene hat ein Symbol:

Zugriffsebene Symbol
Lesen r
Schreiben w
Ausführen x

Jede Identität hat ein Symbol:

Identität Symbol
Benutzer du
Gruppe g
Andere o

Es gibt auch Operatoren, um die Berechtigungen zu manipulieren:

Aufgabe Operator
Zugriffsebene gewähren +
Eine Zugriffsebene entfernen -
Legen Sie eine Zugriffsebene fest =

Der allgemeine chmod Befehlssyntax ist die gleiche:

command permissions directory/file

Hier ist ein Beispiel:

Wie entferne ich die Leseberechtigungen von anderen für file2 im symbolischen Modus?

# chmod o-r file2

Dieses Beispiel entfernt (- ) das gelesene (r ) Erlaubnis von anderen (o ) für file2 .

Hier ist ein weiteres einfaches Beispiel:

Wie erteile ich der Gruppe Lese- und Schreibberechtigungen für file2 ?

# chmod g+rw file2

Dieser gibt (+ ) lesen und schreiben (rw ) an die Gruppe (g ) für file2 .

Wie lege ich Berechtigungen für ein Verzeichnis und seinen gesamten Inhalt im symbolischen Modus fest?

# chmod -R o=rwx,g+rw,o-rwx Resources

Spezielle Berechtigungen und Zugriffskontrolllisten

Die obige Diskussion behandelt Standard-Linux-Berechtigungen – Anwendung von rwx für den Benutzer, die Gruppe und alle anderen. Linux bietet jedoch weitaus mehr Flexibilität. Spezielle Berechtigungen ermöglichen es Benutzern, Anwendungen mit anderen Anmeldeinformationen auszuführen, die Vererbung von Gruppenzuordnungen zu steuern und zu verhindern, dass Dateien versehentlich geändert werden. Sehen Sie sich diesen großartigen Artikel über Sonderberechtigungen an.

Linux hat auch eine Möglichkeit, unterschiedliche Berechtigungen für verschiedene Benutzer und Gruppen durchzusetzen. Zugriffssteuerungslisten (ACLs) erlauben Systemadministratoren, Berechtigungen für mehr als nur einen Benutzer und eine Gruppe zu definieren, was den Standardberechtigungen viel mehr Flexibilität verleiht. Beispiel:user01 kann rw- gewährt werden zu file1 , während user02 kann r-- gewährt werden zu file1 . Hier ist ein großartiger Artikel über ACLs.

[ Kostenloser Kurs:Technischer Überblick über Red Hat Satellite. ] 

Abschluss

Das Erstellen von Ressourcen, das Verwalten von Benutzern und das Festlegen von Berechtigungen sind grundlegende Aufgaben für Linux-Benutzer. Mein Ziel war es, einen schnellen und einfachen Leitfaden basierend auf häufig gestellten Fragen oder Aufgaben bereitzustellen, die wir alle regelmäßig erledigen müssen. Wenn Sie neu bei Linux sind, wird Ihnen ein solides Verständnis der acht oben besprochenen Befehle das Leben als Systemadministrator erheblich erleichtern.


Linux
  1. Spickzettel für Linux-Benutzer und -Berechtigungen

  2. So finden Sie Dateien mit SUID- und SGID-Berechtigungen in Linux

  3. Verwalten Sie Linux-Benutzer und Linux-Gruppen

  4. So verwalten Sie Benutzer mit useradd unter Linux

  5. So installieren und verwalten Sie Java-Versionen unter Rocky Linux 8

Linux-Berechtigungen – So finden Sie Berechtigungen einer Datei

So listen Sie Benutzer und Gruppen unter Linux auf

So erstellen und verwalten Sie neue Benutzer unter Linux

Wie erstelle ich Benutzer und Gruppen in CentOS7?

So erkennen und verwalten Sie Geräte unter Linux

So installieren und konfigurieren Sie das Windows-Subsystem für Linux