Verwalten von Benutzern und Gruppen, Dateiberechtigungen und -attributen und Aktivieren von Sudo -Zugriff auf Konten - Teil 8
- 834
- 52
- Henry Liebold
Im vergangenen August startete die Linux Foundation die LFCS Zertifizierung (Linux Foundation Certified Sysadmin), ein brandneues Programm, dessen Ziel es ist, Einzelpersonen überall und überall eine Prüfung zu ermöglichen, um in Basic bis intermediate operativer Unterstützung für Linux -Systeme zertifiziert zu werden, einschließlich der Unterstützung von laufenden Systemen und Diensten sowie die allgemeine Überwachung und Analyse sowie intelligente Intelligente Entscheidungsfindung, um zu entscheiden, wann es notwendig ist, Probleme auf höhere Supportteams zu Eskalation zu eskalieren.
Linux Foundation Certified Sysadmin - Teil 8Bitte werfen Sie einen kurzen Blick auf das folgende Video, in dem eine Einführung in das Linux Foundation -Zertifizierungsprogramm beschrieben wird.
Dieser Artikel ist Teil 8 einer 10-Tutorial-Long-Serie. Hier in diesem Abschnitt werden Sie Ihnen die Verwaltung von Benutzern und Gruppenberechtigungen im Linux-System leiten, die für die LFCS-Zertifizierungsprüfung erforderlich sind.
Da Linux ein Multi-User-Betriebssystem ist (insofern mehrere Benutzer auf verschiedenen Computern oder Terminals auf ein einzelnes System zugreifen können), müssen Sie wissen, wie Sie eine effektive Benutzerverwaltung ausführen: Hinzufügen, Bearbeiten, Aussetzen oder Löschen Benutzerkonten, zusammen mit der Erteilung der erforderlichen Berechtigungen für ihre zugewiesenen Aufgaben.
Hinzufügen von Benutzerkonten
Um ein neues Benutzerkonto hinzuzufügen, können Sie einen der folgenden zwei Befehle als Stamm ausführen.
# adduser [new_account] # userAdd [new_account]
Wenn dem System ein neues Benutzerkonto hinzugefügt wird, werden die folgenden Vorgänge ausgeführt.
1. Sein/ihr Heimverzeichnis wird erstellt (/Home/Benutzername standardmäßig).
2. Die folgenden versteckten Dateien werden in das Heimverzeichnis des Benutzers kopiert und werden verwendet, um Umgebungsvariablen für seine Benutzersitzung bereitzustellen.
.Bash_logout .bash_profile .bashrc
3. Für den Benutzer at/var/spool/mail/mails/mail/wird erstelltNutzername.
4. Eine Gruppe wird erstellt und denselben Namen wie das neue Benutzerkonto angegeben.
Verständnis /etc /passwd
Die vollständigen Kontoinformationen werden in der gespeichert /etc/passwd Datei. Diese Datei enthält einen Datensatz pro System -Benutzerkonto und verfügt über das folgende Format (Felder werden von einem Dickdarm abgegrenzt).
[Benutzername]: [x]: [UID]: [GID]: [Kommentar]: [Home -Verzeichnis]: [Standardschale]
- Felder [Nutzername] Und [Kommentar] sind selbsterklärend.
- Der X Im zweiten Feld gibt an, dass das Konto durch ein schattiges Passwort (in "geschützt ist /etc/Shadow), die benötigt wird, um sich als Anmeldung als Anmeldung zu machen [Nutzername].
- Der [UID] Und [GID] Felder sind Ganzzahlen, die die Benutzeridentifikation und die primäre Gruppenidentifikation darstellen, auf die [Nutzername] gehört jeweils.
- Der [Home Directory] zeigt den absoluten Weg zu [Nutzername]'s Home Directory, und
- Der [Standardschale] ist die Shell, die diesem Benutzer zur Verfügung gestellt wird, wenn er sich das System anmeldet.
Verständnis /etc /Gruppe
Gruppeninformationen werden in der gespeichert /etc/Gruppe Datei. Jeder Datensatz hat das folgende Format.
[Gruppenname]: [Gruppenkennwort]: [GID]: [Gruppenmitglieder]
- [Gruppenname] ist der Name der Gruppe.
- Ein X In [Gruppenkennwort] Zeigt an, dass Grupp -Passwörter nicht verwendet werden.
- [GID]: Gleich wie in /etc /passwd.
- [Gruppenmitglieder]: Eine von Kommas getrennte Liste von Benutzern, die Mitglieder von sind [Gruppenname].
Nach dem Hinzufügen eines Konto Usmod Befehl, dessen grundlegende Syntax von Usmod wie folgt ist.
# Usmod [Optionen] [Benutzername]
Festlegen des Ablaufdatums für ein Konto
Verwenden Sie das -Ablaufdatum Flagge gefolgt von einem Datum in Yjyy-mm-dd Format.
# Usermod-Expiredate 2014-10-30 Tecmint
Hinzufügen des Benutzer zu ergänzenden Gruppen
Verwenden Sie die kombinierten -Ag, oder -anhängen -Gruppen Optionen, gefolgt von einer von Kommas getrennten Liste von Gruppen.
# Usermod -Anpend -Gruppen root, Benutzer Tecmint
Ändern des Standardstandorts des Heimverzeichnisses des Benutzers
Verwenden Sie das -D, oder -heim Optionen, gefolgt von dem absoluten Weg zum neuen Heimverzeichnis.
# Usermod -Home /TMP Tecmint
Ändern der Shell, die der Benutzer standardmäßig verwendet
Verwenden -Hülse, gefolgt von dem Weg zur neuen Hülle.
# Usermod -Shell /bin /sh tecmint
Anzeigen der Gruppen Ein Benutzer ist Mitglied von
# Gruppen Tecmint # id tecmint
Lassen Sie uns nun alle oben genannten Befehle auf einmal ausführen.
# Usermod-expiredate 2014-10-30-Append-Gruppen root, Benutzer-Home /TMP-Shell /bin /sh tecmintUsermod -Befehlsbeispiele
Im obigen Beispiel werden wir das Ablaufdatum der festlegen Tecmint Benutzerkonto an 30. Oktober 2014. Wir werden das Konto auch zum Konto hinzufügen Wurzel und Benutzergruppe. Schließlich werden wir setzen Sch
als Standardschale und ändern Sie den Ort des Heimverzeichnisses auf /tmp:
Lesen Sie auch:
- 15 UserAdd -Befehlsbeispiele unter Linux
- 15 Usermod -Befehlsbeispiele unter Linux
Für bestehende Konten können wir auch Folgendes tun.
Deaktivieren Sie das Konto durch Verriegelung Passworts
Benutze die -L (Großbuchstaben l) oder die -sperren Option, das Passwort eines Benutzers zu sperren.
# Usermod -Lock Tecmint
Benutzerkennwort entsperren
Verwenden Sie das -u oder der -Freischalten Option zum Entsperren des bisher blockierten Benutzerkennworts.
# Usermod -Unlock TecmintBenutzerkonten sperren
Erstellen einer neuen Gruppe zum Lese- und Schreibzugriff auf Dateien, auf die von mehreren Benutzern zugegriffen werden muss
Führen Sie die folgende Reihe von Befehlen aus, um das Ziel zu erreichen.
# GroupAdd Common_Group # Fügen Sie eine neue Gruppe hinzu # Chown: Common_Group Common.txt # Ändern Sie den Gruppenbesitzer von Common.TXT zu Common_Group # Usmod -Ag -Ag -Common_Group -Benutzer1 # Benutzer1 zu Common_Group # Usmod -Ag -Ag -Gruppen -Benutzer2 # Benutzer2 hinzufügen zu Common_Group # Usermod -Ag -Common_Group Benutzer3 # user3 add user3 zu Common_Group hinzufügen zu Common_Group hinzufügen
Eine Gruppe löschen
Sie können eine Gruppe mit dem folgenden Befehl löschen.
# GroupDel [Group_Name]
Wenn es Dateien gibt Gruppenname, Sie werden nicht gelöscht, aber der Gruppenbesitzer wird auf die festgelegt Gid der Gruppe, die gelöscht wurde.
Linux -Dateiberechtigungen
Neben den grundlegenden Berechtigungen, die wir in Archiving -Tools und Einstellungsdateiattributen diskutiert haben - Teil 3 dieser Serie, gibt es andere weniger verwendete (aber nicht weniger wichtige) Berechtigungseinstellungen, die manchmal als "als" als "als" bezeichnet "bezeichnet werden"Sonderberechtigungen”.
Wie die zuvor diskutierten grundlegenden Berechtigungen werden sie unter Verwendung einer Oktaldatei oder über einen Brief (symbolische Notation) festgelegt, der die Art der Genehmigung angibt.
Benutzerkonten löschen
Sie können ein Konto (zusammen mit seinem Heimverzeichnis, falls es dem Benutzer gehört, und allen darin enthaltenen Dateien und auch der Mail -Spool) löschen UserDel Befehl mit dem -entfernen Möglichkeit.
# UserDel --Remove [Benutzername]
Gruppenmanagement
Jedes Mal, wenn ein neues Benutzerkonto zum System hinzugefügt wird, wird eine Gruppe mit demselben Namen mit dem Benutzernamen als einziges Mitglied erstellt. Andere Benutzer können später zur Gruppe hinzugefügt werden. Einer der Zwecke der Gruppen besteht darin, eine einfache Zugriffskontrolle für Dateien und andere Systemressourcen zu implementieren, indem die richtigen Berechtigungen für diese Ressourcen festgelegt werden.
Angenommen, Sie haben die folgenden Benutzer.
- Benutzer1 (primäre Gruppe: Benutzer1)
- Benutzer2 (primäre Gruppe: Benutzer2)
- Benutzer3 (primäre Gruppe: Benutzer3)
Alle brauchen brauchen lesen Und schreiben Zugriff auf eine Datei aufgerufen gemeinsam.txt befindet sich irgendwo auf Ihrem lokalen System oder vielleicht in einem Netzwerk teilen diese Benutzer1 hat erschaffen. Sie sind vielleicht versucht, so etwas zu tun,
# Chmod 660 Gemeinsam.txt oder # chmod u = rw, g = rw, o = gemeinsam.txt [Beachten Sie den Speicherplatz zwischen dem letzten gleichen Zeichen und dem Dateinamen]
Dies wird jedoch nur liefern lesen Und schreiben Zugriff auf den Eigentümer der Datei und auf diejenigen Benutzer, die Mitglieder des Gruppenbesitzers der Datei sind (Benutzer1 in diesem Fall). Auch hier können Sie versucht sein, hinzuzufügen Benutzer2 Und Benutzer3 zu gruppieren Benutzer1, Dies gibt ihnen jedoch auch Zugriff auf den Rest der Dateien, die dem Benutzer gehören Benutzer1 und Gruppe Benutzer1.
Hier sind die Gruppen nützlich, und hier ist, was Sie in einem Fall wie diesem tun sollten.
SetUid verstehen
Wenn das SetUid Die Berechtigung wird auf eine ausführbare Datei angewendet, ein Benutzer erbt das Programm erbt die effektiven Berechtigungen des Programmbesitzers des Programms. Da dieser Ansatz vernünftigerweise Sicherheitsbedenken auswirken kann, muss die Anzahl der Dateien mit SetUid -Berechtigung auf ein Minimum gehalten werden. Sie werden wahrscheinlich Programme mit diesem Berechtigungssatz finden, wenn ein Systembenutzer auf eine Datei zugreifen muss, die von Root gehört.
Wenn der Benutzer die Binärdatei ausführen kann. Lassen Sie uns zum Beispiel die Berechtigungen von überprüfen /bin/passwd. Mit dieser Binärin wird das Kennwort eines Kontos geändert und die ändert /etc/Shadow Datei. Der Superuser kann das Passwort eines jeden ändern, aber alle anderen Benutzer sollten nur in der Lage sein, seine eigenen zu ändern.
Passwd -BefehlsbeispieleDaher sollte jeder Benutzer die Erlaubnis zum Ausführen haben /bin/passwd, Aber nur Root kann ein Konto angeben. Andere Benutzer können ihre entsprechenden Passwörter nur ändern.
Benutzerkennwort ändernSetGid verstehen
Wenn das setgid Bit ist eingestellt, der effektive Gid des wirklichen Benutzers wird der des Gruppenbesitzers. Daher kann jeder Benutzer auf eine Datei unter den Berechtigungen zugreifen, die dem Gruppenbesitzer dieser Datei gewährt wurden. Wenn das SetGid -Bit in einem Verzeichnis festgelegt ist, erben neu erstellte Dateien dieselbe Gruppe wie das Verzeichnis, und neu erstellte Unterverzeichnisse erben auch das SetGid -Bit des übergeordneten Verzeichnisses. Sie werden diesen Ansatz höchstwahrscheinlich verwenden, wenn Mitglieder einer bestimmten Gruppe Zugang zu allen Dateien in einem Verzeichnis benötigen, unabhängig von der primären Gruppe des Dateibesitzers.
# Chmod G+S [Dateiname]
Um das zu setzen setgid Bereiten Sie in Oktalform die Nummer vor 2 zu den aktuellen (oder gewünschten) Grundberechtigungen.
# CHMOD 2755 [Verzeichnis]
Festlegen des SetGid in einem Verzeichnis
Fügen Sie SetGid zum Verzeichnis hinzuSticky Bit verstehen
Wenn das "Sticky BitIst auf Dateien festgelegt, Linux ignoriert es nur, während es für Verzeichnisse dazu wirkt.
# Chmod O+T [Verzeichnis]
Um das zu setzen Sticky Bit Bereiten Sie in Oktalform die Nummer vor 1 zu den aktuellen (oder gewünschten) Grundberechtigungen.
# Chmod 1755 [Verzeichnis]
Ohne das klebrige Stück kann jeder, der in das Verzeichnis schreiben kann, Dateien löschen oder umbenennen. Aus diesem Grund befindet sich das Sticky -Bit häufig in Verzeichnissen, wie z /tmp, das sind weltweit.
Fügen Sie Stickybit zum Verzeichnis hinzuSpezielle Linux -Dateiattribute
Es gibt andere Attribute, die weitere Grenzen für die Operationen ermöglichen, die in Dateien zulässig sind. Verhindern Sie beispielsweise, dass die Datei umbenannt, verschoben, gelöscht oder sogar geändert wird. Sie werden mit dem Chattr -Befehl eingestellt und können mit dem angezeigt werden lsattr Werkzeug wie folgt.
# CHATTR +I Datei1 # CHATTR +A Datei2
Nach Ausführung dieser beiden Befehle, Datei1 wird unveränderlich sein (was bedeutet, dass es nicht bewegt, umbenannt, modifiziert oder gelöscht werden kann), während Datei2 Geben Sie einen Nur-Append-Modus ein (kann nur im Append-Modus zum Schreiben geöffnet werden).
CHATTR -Befehl zum Schutz von DateienZugriff auf das Root -Konto und verwenden sudo
Eine der Möglichkeiten, wie Benutzer auf das Stammkonto zugreifen können, ist das Eingeben.
$ su
und dann das Passwort von Root eingeben.
Wenn die Authentifizierung erfolgreich ist, werden Sie angemeldet Wurzel mit dem aktuellen Arbeitsverzeichnis wie zuvor wie zuvor. Wenn Sie stattdessen in das Heimverzeichnis von Root platziert werden möchten, laufen Sie.
$ su -
und geben Sie dann das Passwort von Root ein.
Aktivieren Sie den Sudo -Zugriff auf BenutzerDie obige Prozedur erfordert, dass ein normaler Benutzer das Passwort von Root kennt, das ein ernstes Sicherheitsrisiko darstellt. Aus diesem Grund kann das Sysadmin die konfigurieren sudo Befehl, mit dem einem normalen Benutzer Befehle als anderer Benutzer (normalerweise als Superuser) auf sehr kontrollierte und begrenzte Weise ausführen kann. Somit können Einschränkungen auf einen Benutzer festgelegt werden, damit er einen oder mehrere spezifische privilegierte Befehle und keine anderen ausführen kann.
Lesen Sie auch: Unterschied zwischen SU und Sudo -Benutzer
Zu authentifizieren sudo, Der Benutzer verwendet sein eigenes Passwort. Nach der Eingabe des Befehls werden wir für unser Passwort (nicht die des Superusers) aufgefordert, und wenn die Authentifizierung erfolgreich ist (und wenn dem Benutzer die Berechtigungen für den Ausführen des Befehls gewährt wurden), wird der angegebene Befehl ausgeführt.
Um den Zugriff auf Sudo zu gewähren, muss der Systemadministrator die bearbeiten /etc/sudoers Datei. Es wird empfohlen, dass diese Datei mit dem bearbeitet wird Visudo Befehl anstatt ihn direkt mit einem Texteditor zu öffnen.
# Visudo
Dies öffnet die /etc/sudoers Datei mit Vim (Sie können die in der Installation und Verwendung von VIM als Editor angegebenen Anweisungen befolgen - Teil 2 dieser Serie, um die Datei zu bearbeiten.).
Dies sind die relevantesten Zeilen.
Defaults Secure_path = "/usr/sbin:/usr/bin:/sbin" root alle = (alle) alle Tecmint All =/bin/yum update gacanepa all = nopasswd:/bin/updatedb %admin alle = (alle) alle
Schauen wir sie uns genauer an.
Standards Secure_path = "/usr/sbin:/usr/bin:/sbin:/usr/local/bin"
Mit dieser Zeile können Sie die Verzeichnisse angeben, für die verwendet wird, für die Sie verwendet werden sudo, und wird verwendet, um die Verwendung von benutzerspezifischen Verzeichnissen zu verhindern, was das System schädigen kann.
Die nächsten Zeilen werden verwendet, um Berechtigungen anzugeben.
Wurzeln Sie alle = (alle) alle
- Der erste ALLE Das Schlüsselwort zeigt an, dass diese Regel für alle Hosts gilt.
- Der Zweite ALLE Gibt an, dass der Benutzer in der ersten Spalte Befehle mit den Berechtigungen eines beliebigen Benutzers ausführen kann.
- Der dritte ALLE bedeutet, dass jeder Befehl ausgeführt werden kann.
Tecmint All =/bin/yum Update
Wenn kein Benutzer nach dem angegeben ist = Sign, sudo nimmt den Root -Benutzer an. In diesem Fall Benutzer Tecmint wird in der Lage sein zu rennen yum Update als Wurzel.
gacanepa alle = nopasswd:/bin/updatedb
Der Nopasswd Die Anweisung ermöglicht es dem Benutzer Gacanepa zum Ausführen /bin/aktualisiertb ohne sein Passwort eingeben zu müssen.
%adminal alle = (alle) alle
Der % Das Zeichen gibt an, dass diese Zeile für eine Gruppe namens "gilt"Administrator”. Die Bedeutung des Restes der Linie ist identisch mit der eines regulären Benutzer. Dies bedeutet, dass Mitglieder der Gruppe “Administrator”Kann alle Befehle als Benutzer auf allen Hosts ausführen.
Um zu sehen, welche Privilegien Ihnen von Sudo gewährt werden, verwenden Sie die “-lOption, sie aufzulisten.
Sudo -ZugriffsregelnPAM (steckbare Authentifizierungsmodule)
Steckbare Authentifizierungsmodule (PAM) bieten die Flexibilität, ein bestimmtes Authentifizierungsschema auf der Basis von MODULES durch die Anwendung und / oder Pro-Service festzulegen. Dieses Tool, das auf allen modernen Linux -Verteilungen vorhanden ist, überwand das Problem, mit dem Entwickler in den frühen Tagen von Linux häufig konfrontiert sind, als jedes Programm, das eine Authentifizierung erforderte.
Zum Beispiel spielt es bei PAM keine Rolle, ob Ihr Passwort in gespeichert ist /etc/Shadow oder auf einem separaten Server in Ihrem Netzwerk.
Wenn das Anmeldungsprogramm beispielsweise einen Benutzer authentifizieren muss, bietet PAM dynamisch die Bibliothek, die die Funktionen für das richtige Authentifizierungsschema enthält. Das Ändern des Authentifizierungsschemas für die Anmeldeanwendung (oder ein anderes Programm mit PAM) ist daher einfach /etc/pam.D
, und weniger wahrscheinlich in /etc/pam.Conf
).
Dateien im Inneren /etc/pam.D
Geben Sie an, welche Anwendungen PAM nativ verwenden. Darüber hinaus können wir feststellen, ob eine bestimmte Anwendung PAM verwendet, indem wir überprüft, ob sie die PAM -Bibliothek (libpam) wurde damit verbunden:
# LDD $ (welches Login) | Grep libpam # Login verwendet PAM # LDD $ (was oben) | Grep libpam # Top verwendet PAM nichtÜberprüfen Sie die Linux Pam -Bibliothek
Im obigen Bild können wir sehen, dass die libpam wurde mit der Anmeldeanwendung verknüpft. Dies ist sinnvoll, da diese Anwendung am Betrieb der Systembenutzerauthentifizierung beteiligt ist, während Top dies nicht tut.
Untersuchen wir die PAM -Konfigurationsdatei für Passwd - Ja, das bekannte Dienstprogramm zum Ändern des Benutzers Passwörter. Es befindet sich bei /etc/pam.D/Passwd:
# Katze /etc /passwdPAM -Konfigurationsdatei für Linux -Passwort
Die erste Spalte zeigt die an Typ
der Authentifizierung mit dem verwendet werden Modulpfad
(dritte Spalte). Wenn ein Bindestrich vor dem Typ erscheint, zeichnet PAM nicht zum Systemprotokoll auf, wenn das Modul nicht geladen werden kann, da es im System nicht gefunden werden konnte.
Die folgenden Authentifizierungstypen sind verfügbar:
Konto
: Dieser Modul -Typ prüft, ob der Benutzer oder Dienst gültige Anmeldeinformationen zur Authentifizierung geliefert hat.Auth
: Dieser Modul -Typ verwertet, dass der Benutzer, der er / sie behauptet, zu sein, und gewährt alle benötigten Berechtigungen.Passwort
: Mit diesem Modultyp kann der Benutzer oder Dienst sein Passwort aktualisieren.Sitzung
: Dieser Modultyp gibt an, was vor und/oder nach dem Erfolg der Authentifizierung getan werden soll.
Die zweite Spalte (genannt Kontrolle
) Gibt an, was passieren soll, wenn die Authentifizierung mit diesem Modul fehlschlägt:
Requisit
: Wenn die Authentifizierung über dieses Modul fehlschlägt, wird die Gesamtauthentifizierung sofort abgelehnt.erforderlich
ähnelt der erforderlichen.ausreichend
: Wenn die Authentifizierung über dieses Modul fehlschlägt, gewährt PAM weiterhin eine Authentifizierung.Optional
: Wenn die Authentifizierung über dieses Modul fehlschlägt oder erfolgreich ist, geschieht nichts, es sei denn.enthalten
bedeutet, dass die Zeilen des angegebenen Typs aus einer anderen Datei gelesen werden sollten.Substanz
ist ähnlich wie bei Einbeziehung, aber Authentifizierungsfehlern oder -erfolge verursachen nicht den Ausgang des vollständigen Moduls, sondern nur des Substanzs.
Die vierte Spalte zeigt, falls vorhanden, die Argumente an das Modul übergeben werden.
Die ersten drei Zeilen in /etc/pam.D/Passwd (oben gezeigt), laden Sie die System-Auth Modul, um zu überprüfen, ob der Benutzer gültige Anmeldeinformationen (Konto) geliefert hat. Wenn ja, ermöglicht es ihm / ihr, das Authentifizierungs -Token (Passwort) zu ändern, indem er die Berechtigung zur Verwendung von PASSWD (Auth).
Zum Beispiel, wenn Sie anhängen
Erinnere dich = 2
in die folgende Zeile
Passwort ausreichend pam_unix.Also SHA512 Shadow Nullok try_first_pass Use_authtok
In /etc/pam.D/System-Auth:
Passwort ausreichend pam_unix.Also SHA512 Shadow Nullok try_first_pass Use_authtok remm = 2
Die letzten beiden Hashed -Passwörter jedes Benutzers werden in gespeichert /etc/Security/opasswd damit sie nicht wiederverwendet werden können:
Linux -PasswortfelderZusammenfassung
Effektive Fähigkeiten des Benutzer- und Dateimanagements sind wesentliche Tools für jeden Systemadministrator. In diesem Artikel haben wir die Grundlagen behandelt und hoffen, dass Sie es als gut zu zeigen können, um darauf aufzubauen. Fühlen Sie sich frei, Ihre Kommentare oder Fragen unten zu hinterlassen, und wir werden schnell antworten.
Werden Sie ein Linux -zertifizierter Systemadministrator- « Linux -Paketverwaltung mit Yum, RPM, APT, DPKG, Aptitude und Zypper - Teil 9
- LFCS, wie man lokale und netzwerk (Samba & NFS) Dateisysteme unter Linux - Teil 5 montiert/entmontiert - »