Im Zusammenhang mit einem Discretionary Access Control (DAC)-Mechanismus basiert der Zugriff auf Systemressourcen, Dateien und Verzeichnisse auf der Identität der Benutzer und auf den Gruppen, denen sie angehören. Diese Art der Zugriffskontrolle wird als „diskretionär“ bezeichnet, da ein Benutzer seine eigenen Richtlinienentscheidungen treffen kann (natürlich begrenzt durch seine eigenen Berechtigungen). In diesem Tutorial werden wir sehen, wie man einen Benutzer zu einer Gruppe hinzufügt und was der Unterschied zwischen einer primären und einer sekundären Gruppe auf einem Linux-System mit RHEL 8 / CentOS 8 ist.
In diesem Tutorial lernen Sie:
- Was ist der Unterschied zwischen einer primären und einer sekundären Gruppe
- Wie man einen Benutzer mit dem usermod-Befehl zu einer Gruppe hinzufügt
- Wie man einen Benutzer direkt mit vigr zu einer Gruppe hinzufügt
So fügen Sie einen Benutzer zu einer Gruppe auf Rhel8 hinzu
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | RHEL 8 / CentOS 8 |
Software | Für dieses Tutorial ist keine spezielle Software erforderlich |
Andere | Berechtigung zum Ausführen des Befehls mit Root-Rechten. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Was ist eine Gruppe?
Linux, das auf Unix basiert, ist ein Mehrbenutzer-Betriebssystem:Mehrere Benutzer existieren und teilen sich gleichzeitig Ressourcen im System. Auf der einfachsten Ebene wird der Zugriff auf diese Ressourcen durch die Verwendung eines DAC
verwaltet (Discretionary Access Control)-Modell. Der Zugriff auf Dateien und Verzeichnisse basiert beispielsweise auf der Identität eines Benutzers und auf den groups
er ist Mitglied von. In diesem Tutorial werden wir sehen, wie man einen Benutzer zu einer bestehenden Gruppe auf einem Red Hat Enterprise Linux 8-Rechner hinzufügt.
Primäre und sekundäre Gruppen
Heutzutage verwendet Red Hat, wie fast alle anderen großen Linux-Distributionen, ein Schema namens UPG
, oder Private Benutzergruppe:Jedes Mal, wenn ein neuer Benutzer erstellt wird, wird automatisch auch eine neue Gruppe mit demselben Namen des Benutzers erstellt, und der Benutzer wird sein einziges Mitglied. Dies wird als primary
bezeichnet oder private
Gruppe.
Jeder Benutzer hat seine eigene primäre Gruppe, die nach ihm selbst benannt ist, ohne andere Mitglieder. Dieses Setup ermöglicht es, die Vorgabe umask
zu ändern Wert:traditionell war es 022
(das bedeutet 644
Berechtigungen für Dateien und 755
für Verzeichnisse), jetzt ist es normalerweise auf 002
gesetzt (664
Berechtigungen für Dateien und 775
für Verzeichnisse).
Da standardmäßig jede Datei oder jedes Verzeichnis, das von einem Benutzer erstellt wird, mit der primären Gruppe dieses Benutzers erstellt wird, vereinfacht dieses Setup unter Beibehaltung der Sicherheit (ein Benutzer kann immer noch nur seine eigenen Dateien ändern) die gemeinsame Nutzung von Ressourcen und die Zusammenarbeit zwischen Benutzern, die Mitglieder von sind dieselbe Gruppe, wenn das setgid-Bit verwendet wird, indem Schreibberechtigungen für die Gruppe gewährt werden.
Wir können eine Liste der Gruppen erhalten, in denen ein Benutzer Mitglied ist, indem wir groups
verwenden Befehl:
$ groups egdoc wheel
Wie wir der Ausgabe des Befehls entnehmen können, gehört der aktuelle Benutzer egdoc zum egdoc
Gruppe, die ihre eigene primäre Gruppe ist, und zum wheel
Gruppe, wodurch er Befehle mit sudo
ausführen kann , und ist eine sogenannte secondary group
:eine optionale Gruppe, die dem Benutzer standardmäßig nicht zugeordnet ist.
Fügen Sie einen Benutzer zu einer Gruppe hinzu, indem Sie usermod verwenden
Während ein Benutzer das einzige Mitglied seiner primären Gruppe ist, möchten wir möglicherweise einen Benutzer zu einer sekundären Gruppe hinzufügen, um ihm vielleicht Zugriff auf bestimmte Ressourcen zu gewähren. Sagen wir zum Beispiel, wir haben einen test
user, und wir möchten es der bestehenden Gruppe linuxconfig
hinzufügen :Der einfachste und empfohlene Weg, diese Aufgabe zu erfüllen, ist die Verwendung von usermod
Befehl:
$ sudo usermod -a -G linuxconfig test
Lassen Sie uns die Optionen untersuchen, die wir verwendet haben. Der usermod
Dienstprogramm, lassen Sie uns ein Benutzerkonto ändern; Durch die Verwendung können wir eine Vielzahl von Vorgängen ausführen, z. B. das Home-Verzeichnis eines Benutzers ändern, ein Ablaufdatum für sein Konto festlegen oder es sofort sperren. Mit dem Befehl können wir den Benutzer auch zu einer bestehenden Gruppe hinzufügen. Die Optionen, die wir in diesem Fall verwendet haben, sind -G
(kurz für --groups
) und -a
, (das ist die Kurzform von --append
).
Mit der Option -G oder –groups können wir eine Liste von durch Kommas getrennten zusätzlichen Gruppen bereitstellen, denen der Benutzer angehören sollte. Wie bereits erwähnt, muss jede bereitgestellte Gruppe bereits auf dem System vorhanden sein. Eine sehr wichtige Sache, an die Sie sich erinnern sollten, ist, dass die Liste der bereitgestellten Gruppen unterschiedlich interpretiert wird, unabhängig davon, ob der -a
Option ist ebenfalls vorgesehen oder nicht:Im ersten Fall wird die Liste als zusätzliche Gruppen interpretiert, zu denen der Benutzer hinzugefügt werden soll, zusätzlich zu denen, denen er bereits angehört; wenn der -a
Die Option wird nicht bereitgestellt, stattdessen wird die Liste als absolute Liste von Gruppen interpretiert, denen der Benutzer angehören sollte. Wie in der Befehls-Manpage angegeben, wird der Benutzer im letzteren Fall, wenn er derzeit Mitglied einer Gruppe ist, die nicht Teil der für den Befehl bereitgestellten Liste ist, aus dieser Gruppe entfernt!
Der Benutzer „test“ ist jetzt Mitglied der Gruppe „linuxconfig“. Lassen Sie es uns überprüfen:
$ sudo groups test test : test linuxconfig
Benutzer direkt zu einer Gruppe hinzufügen
Mit usermod
ist der einfachste Weg, einen Benutzer zu einer Gruppe hinzuzufügen. Der Vollständigkeit halber untersuchen wir nun eine andere Möglichkeit, dieselbe Aufgabe auszuführen, indem wir vigr
verwenden Linux-Befehl. Mit diesem Befehl können wir die Datei /etc/group
bearbeiten und /etc/gshadow
Dateien direkt und sperrt sie auch, während sie geöffnet sind, um ihre Beschädigung zu verhindern und Konsistenz zu gewährleisten.
Die „Schatten“-Version der Datei (/etc/gshadow) wird nur geändert, wenn -s
Option verwendet wird. Um unseren „test“-Benutzer mit dieser Methode zur „linuxconfig“-Gruppe hinzuzufügen, sollten wir vigr
ausführen Befehl als Superuser:/etc/group
Datei wird im Standardeditor (normalerweise vi) geöffnet:
[...] chrony:x:993: egdoc:x:1000: cgred:x:992: docker:x:991: apache:x:48: test:x:1001:test linuxconfig:x:1002: [...]
Die zur Darstellung jeder Gruppe verwendete Syntax lautet wie folgt:
group-name:group-password:group-id:users
Die Felder sind durch einen Doppelpunkt getrennt:Das erste ist der Gruppenname, das zweite ist das „Passwort“ der Gruppe (das normalerweise nicht gesetzt ist) und das dritte Feld ist die GID
oder Gruppen-ID. Das letzte Feld ist die durch Komma getrennte Liste der Mitglieder der Gruppe. Um unseren „test“-Benutzer zur „linuxconfig“-Gruppe hinzuzufügen, sollten wir dieses Feld ändern, sodass die Zeile zu:
linuxconfig:x:1002:test
Sobald die Änderung durchgeführt wurde, können wir die Datei speichern und schließen. Auf dem Terminal erscheint eine Meldung:
You have modified /etc/group. You may need to modify /etc/gshadow for consistency. Please use the command 'vigr -s' to do so.
Da wir die /etc/group
geändert haben -Datei, schlägt uns die Meldung vor, auch die zugehörige Shadow-Datei zu ändern, die /etc/gshadow
ist . Für diejenigen unter Ihnen, die es nicht wissen, wird eine Schattendatei verwendet, um die verschlüsselte Version von Informationen zu speichern, die in Klartextform nicht sicher gespeichert werden können. Zum Beispiel, wie wir zuvor gesehen haben, ein x
wird in /etc/group
gemeldet Datei anstelle des optionalen Gruppenpassworts; die gehashte Version des Passworts, falls vorhanden, würde in der Shadow-Datei gespeichert.
Nehmen wir nun dieselbe Änderung wie zuvor an /etc/gshadow
vor Datei, damit sie mit /etc/group
synchronisiert wird . Alles, was wir tun müssen, ist das -s
bereitzustellen Flag zum vigr
Befehl:
$ sudo vigr -s
Sobald die Datei geöffnet ist, nehmen wir die erforderliche Änderung vor:
linuxconfig:!::test
Danach müssen wir das Schreiben dieser Datei erzwingen, da sie schreibgeschützt ist:bei Verwendung von vi
, können wir dies tun, indem wir w!
ausführen Befehl.
Eine alternative Möglichkeit, die beiden Dateien synchron zu halten, ist die Verwendung von grpconv
Befehl, der /etc/gshadow
erstellt Datei aus /etc/group
, und optional von einem bereits existierenden /etc/gshadow
Datei:
$ sudo grpconv
An diesem Punkt können wir die Konsistenz zwischen den beiden Dateien überprüfen, indem wir Folgendes ausführen:
$ sudo grpck
An dieser Stelle sollte keine Ausgabe angezeigt werden.
Schlussfolgerungen
In diesem Tutorial haben wir den Unterschied zwischen einer primären und einer sekundären Gruppe gesehen und welche Rolle sie in einem DAC
spielen Modell. Wir haben gesehen, wie wir einen Benutzer zu einer Gruppe hinzufügen können, indem wir entweder den usermod
verwenden Befehl, was der empfohlene Weg ist, oder direkt mit vigr
Befehl zum sicheren Bearbeiten von /etc/group
und /etc/gshadow
Dateien. Welches Verfahren Sie auch immer verwenden, um diese administrative Aufgabe auszuführen, Sie sollten immer die größtmögliche Aufmerksamkeit darauf verwenden.