Linux ist, wie wir alle wissen, ein Mehrbenutzer-Betriebssystem. Wenn Sie mehrere Benutzer auf einem Desktop oder Server haben, können Sie problemlos mehrere Linux-Benutzerkonten verwalten und jedem Konto Berechtigungen erteilen.
In diesem Artikel erfahren Sie –
- So verwalten Sie Benutzer und Gruppen auf einem Linux-System
- Erstellen Sie ein neues Benutzerkonto in Linux
- Benutzer zu einer Gruppe in Linux hinzufügen
- Benutzergruppe in Linux erstellen
- Benutzergruppe in Linux entfernen
Linux-Benutzer verwalten
Aber bevor wir diskutieren, wie man Linux-Benutzer und Linux-Gruppen verwaltet, lassen Sie mich erklären, warum es aus Sicherheitsgründen wichtig ist, ein eigenes Benutzerkonto zu haben. Viele Benutzer beginnen mit der Verwendung des Root-Kontos beim ersten Booten eines Linux-Servers, was nicht empfohlen wird.
Es ist keine gute Idee, alltägliche Serveroperationen mit einem Root-Konto auszuführen. Der Root-Benutzer ist ein Superuser-Konto. Die Anmeldung garantiert, dass der Benutzer mindestens einmal einen falschen Befehl ausführt, und der Root-Benutzer wird dies tun, meistens ohne nach einer Bestätigung zu fragen. Wenn Sie sich als Nicht-Root-Benutzer anmelden, hat der Benutzer weniger Zugriff auf das System und es ist weniger wahrscheinlich, dass er etwas Schlechtes tut.
Zweitens erleichtert das Hinzufügen von Benutzern zu einer oder mehreren Gruppen die Verwaltung mehrerer Benutzer in Linux, anstatt einzelne Benutzer zu verwalten. Damit sind wir beim Thema Linux-Benutzergruppen. Dies mag für einige Desktop-Benutzer mühsam sein, aber es ist eine nützliche Funktion für Systemadministratoren.
Linux-Benutzergruppen
Die Verwaltung mehrerer Benutzer ist eine schwierige Aufgabe für einen Systemadministrator, insbesondere wenn die Benutzer aus verschiedenen Domänen stammen. Ein Administrator möchte möglicherweise einem Benutzertyp Zugriff auf ein Verzeichnis gewähren, während er anderen Benutzertypen den Zugriff auf andere Verzeichnisse im System verweigert. Alternativ möchte ein Administrator möglicherweise mehrere Arten von Benutzern mit unterschiedlichen Berechtigungen im selben Verzeichnis haben. Dies ist unter Linux möglich, indem Sie Linux-Benutzergruppen erstellen.
Angenommen, wir besitzen eine Softwareentwicklungsfirma. Alle Projektverzeichnisse werden auf einem zentralen Server gespeichert. Wir möchten Python-Programmierern nur Zugriff auf das Python-Verzeichnis geben, das den gesamten Python-Code enthält.
Zur Demonstration erstellen wir einen neuen Benutzer namens Sandy. Sandy ist ein Python-Entwickler, der Zugriff auf das Python-Codeverzeichnis unseres Servers benötigt. Beginnen wir also damit, sein Konto zu erstellen.
Erstellen Sie einen neuen Benutzer in Linux
Das Erstellen eines neuen Benutzers in Linux ist über die GUI extrem einfach.
Zum Beispiel verwende ich Manjaro Linux (Deepin), und das Erstellen eines neuen Benutzers ist wie das Erstellen einer neuen Notiz in einer beliebigen Notizanwendung. Geben Sie einfach den Benutzernamen und das Passwort ein, und das war's.
Aber wenn Sie einen neuen Benutzer auf einem Linux-Server erstellen müssen, können die folgenden zwei Befehle die Arbeit erledigen –
- Benutzer hinzufügen
- adduser
Benutzer hinzufügen – Dieser Befehl ist in allen Linux-Distributionen verfügbar. Es akzeptiert verschiedene Argumente, um einen neuen Benutzer in Linux zu erstellen . Wenn er ohne Argumente ausgeführt wird, erstellt der Befehl ein Benutzerkonto ohne Home-Verzeichnis, Shell-Erweiterung usw.
Sie können jedoch die Standardoptionen in /etc/default/useradd
festlegen sodass jedes Mal, wenn ein Benutzer erstellt wird, der Befehl die Standardwerte aus /etc/default/useradd
übernimmt automatisch.
adduser – Ein in Perl geschriebener Befehl, der useradd
verwendet im Backend. Im Gegensatz zu useradd
, erfordert es nur den Benutzernamen und führt ein Setup im Terminal aus, um einen Benutzer zu erstellen. Es ist einfacher als useradd.
adduser
ist nur in Ubuntu und anderen Debian-basierten Linux-Distributionen verfügbar.
Wie verwende ich useradd?
useradd -m sandy
Der obige Befehl erstellt ein Benutzerkonto mit einem Home-Verzeichnis unter /home/sandy
. Legen Sie nun das Passwort für den Benutzer fest.
sudo passwd sandy
Und das ist es. Ein Benutzer wurde erstellt. Wenn Sie für den Benutzer ein anderes Home-Verzeichnis erstellen möchten, muss das -d
Parameter ist dafür.
sudo useradd -d /home/james sandy
Sie können die Shell auch im Befehl useradd festlegen. Verwenden Sie einfach das -s
Parameter.
sudo useradd -d /home/james -s /bin/bash sandy
Wie verwende ich adduser?
Wie oben erwähnt, adduser
ist viel einfacher als useradd
. Es wird nur der Benutzername benötigt. adduser
stellt Fragen und setzt die Eingabewerte als Parameterwerte im useradd-Befehl.
sudo adduser sandy
Wenn Sie Ubuntu oder andere Debian-basierte Distributionen verwenden, fahren Sie mit adduser
fort Befehl. Dieser Befehl wurde erstellt, um den Benutzererstellungsprozess auf Linux-Systemen zu vereinfachen.
Benutzergruppe in Linux hinzufügen
Wie oben erwähnt, ist die Verwaltung von Linux-Benutzern einfacher, wenn Sie sie zu einer oder mehreren Linux-Gruppen hinzufügen.
Wir können eine Gruppe namens „python-programmers“ erstellen, sandigen, unseren Python-Entwickler, zu dieser Gruppe hinzufügen und ihm dann Zugriff auf das Python-Verzeichnis gewähren.
groupadd python-programmer
Benutzer zu einer Gruppe in Linux hinzufügen
Fügen Sie nun sandy zur Gruppe python-programmer hinzu.
sudo usermod -aG python-programmer sandy
Gruppe zu einem Verzeichnis in Linux hinzufügen
Ändern Sie die Gruppe des Python-Verzeichnisses, das unter $HOME/Projects/Python
existiert .
sudo chown -R :python-programmer $HOME/Projects/Python
Berechtigungen zum Verzeichnis hinzufügen
Fügen Sie nun dem Verzeichnis für die Gruppenbenutzer Lese- und Schreibrechte hinzu.
sudo chmod -R g+w $HOME/Projects/Python
Berechtigungen aus dem Verzeichnis entfernen
Und schließlich verbieten Sie anderen Benutzern den Zugriff auf das Python-Verzeichnis.
sudo chmod -R o-x Python
Und die Arbeit ist getan! Jetzt kann auf das Python-Verzeichnis entweder vom Root-Benutzer oder jedem Benutzer in der Gruppe „python-programmers“ zugegriffen werden.
Aber es gibt ein Problem!
Das obige Verfahren wird die Arbeit erledigen. Es wird Benutzern von Python-Programmierern Zugriff auf das Python-Verzeichnis gewähren, aber es gibt ein Problem. Der obige Ansatz erlaubt jeweils nur einer Gruppe von Benutzern den Zugriff auf das Python-Verzeichnis. Wenn Sie anderen Entwicklern Zugriff auf das Python-Verzeichnis gewähren möchten, müssen Sie der vorherigen Gruppe den Zugriff entziehen und die neue Gruppe als Verzeichniseigentümer festlegen.
Um dieses Problem zu lösen und mehreren Arten von Benutzern gleichzeitig Zugriff zu gewähren, können wir Zugriffskontrolllisten verwenden.
Zugriffskontrolllisten
Nehmen wir an, wir haben eine Gruppe von Prüfern in unserer Firma. Wir möchten den Gruppenprüfern Lesezugriff auf das Python-Verzeichnis gewähren, ohne andere Gruppen daraus zu entfernen.
setfacl -m g:auditors:rx -R $HOME/Projects/Python
Und das ist alles. Jetzt haben die Benutzer der Gruppe „python-programmers“ Lese- und Schreibzugriff, und die Benutzer der Gruppe „auditors“ haben Lesezugriff auf das Python-Verzeichnis. Wenn Sie Prüfern auch Schreibzugriff gewähren möchten, fügen Sie das w hinzu im obigen Befehl.
setfacl -m g:auditors:rwx -R $HOME/Projects/Python
Benutzer in Linux entfernen
Möglicherweise müssen Sie auch einen Benutzer in Linux entfernen. Dies kann mit userdel
erfolgen Befehl.
userdel sandy
Warnung Das Löschen eines Benutzers ist eine nicht wiederherstellbare Aktion. Stellen Sie daher sicher, dass Sie wichtige Dateien und Einstellungen sichern, bevor Sie einen Benutzer entfernen. Standardmäßig entfernt der Befehl nicht das Home-Verzeichnis des Benutzers.Hinweis
Bevor Sie einen Benutzer unter Linux entfernen, vergewissern Sie sich, dass der Benutzer keinen anderen Prozess verwendet. Andernfalls erhalten Sie die folgende Fehlermeldung –
userdel: The user sandy is being used by process 3861
Alle Prozesse eines Benutzers in Linux auflisten
ps -u sandy
Output -
PID TTY TIME CMD
4831 ? 00:00:00 systemd
4832 ? 00:00:00 (sd-pam)
4845 ? 00:00:00 gnome-keyring-d
4849 tty5 00:00:00 gdm-x-session
4851 tty5 00:00:10 Xorg
4856 ? 00:00:00 dbus-daemon
4860 tty5 00:00:00 gnome-session-b
4958 ? 00:00:00 ssh-agent
4961 ? 00:00:00 gvfsd
4966 ? 00:00:00 gvfsd-fuse
4975 ? 00:00:00 at-spi-bus-laun
4980 ? 00:00:00 dbus-daemon
4983 ? 00:00:00 at-spi2-registr
4997 ? 00:00:00 gnome-keyring-d
5012 tty5 00:00:21 gnome-shell
5023 ? 00:00:00 pulseaudio
5032 tty5 00:00:00 ibus-daemon
5034 ? 00:00:00 xdg-permission-
5042 tty5 00:00:00 ibus-dconf
5044 ? 00:00:00 gnome-shell-cal
5046 tty5 00:00:00 ibus-x11
5050 ? 00:00:00 ibus-portal
5057 ? 00:00:00 evolution-sourc
5066 ? 00:00:00 dconf-service
5073 ? 00:00:00 goa-daemon
5084 ? 00:00:00 goa-identity-se
5094 ? 00:00:00 gvfs-udisks2-vo
5099 ? 00:00:00 gvfs-gphoto2-vo
5103 ? 00:00:00 gvfs-goa-volume
5107 ? 00:00:00 gvfs-afc-volume
5112 ? 00:00:00 gvfs-mtp-volume
5116 tty5 00:00:00 gsd-power
5117 tty5 00:00:00 gsd-print-notif
5119 tty5 00:00:00 gsd-rfkill
5121 tty5 00:00:00 gsd-screensaver
5125 tty5 00:00:00 gsd-sharing
5128 tty5 00:00:00 gsd-smartcard
5130 tty5 00:00:00 gsd-xsettings
5131 tty5 00:00:00 gsd-wacom
5139 tty5 00:00:00 gsd-sound
5144 tty5 00:00:00 gsd-a11y-settin
5147 tty5 00:00:00 gsd-color
5150 tty5 00:00:00 gsd-clipboard
5154 tty5 00:00:00 gsd-housekeepin
5155 tty5 00:00:00 gsd-datetime
5160 tty5 00:00:00 gsd-media-keys
5162 tty5 00:00:00 gsd-keyboard
5164 tty5 00:00:00 gsd-mouse
5186 tty5 00:00:00 gsd-printer
5217 tty5 00:00:00 gsd-disk-utilit
5219 tty5 00:00:01 nautilus-deskto
5232 ? 00:00:00 gvfsd-trash
5254 ? 00:00:00 evolution-calen
5267 ? 00:00:00 evolution-calen
5282 ? 00:00:00 evolution-addre
5289 ? 00:00:00 evolution-addre
5310 tty5 00:00:00 ibus-engine-sim
5311 ? 00:00:00 gvfsd-metadata
5364 ? 00:00:00 gvfsd-network
5375 ? 00:00:00 gvfsd-dnssd
5443 tty5 00:00:00 update-notifier
5461 tty5 00:00:02 gnome-software
5563 ? 00:00:03 nautilus
5951 tty5 00:00:00 deja-dup-monito
Oder es gibt einen anderen Befehl, um Benutzerprozesse in Linux aufzulisten, pgrep
.
pgrep -u sandy
Output -
4831
4832
4845
4849
4851
4856
4860
4958
4961
4966
4975
4980
4983
4997
5012
5023
5032
5034
5042
Alle vom Benutzer verwendeten Prozesse beenden
killall
Der Befehl beendet alle Prozesse der Benutzer.
killall -u sandy
Linux-Benutzer entfernen
Nachdem alle Prozesse des Benutzers beendet wurden, können wir den Benutzer löschen.
userdel sandy
Wie ich oben erwähnt habe, entfernt der Befehl standardmäßig nicht das Home-Verzeichnis des Benutzers. Um auch das Home-Verzeichnis des Benutzers zu entfernen, fügen Sie –-r
hinzu Argument für den Befehl.
userdel -r sandy
Benutzer aus einer Gruppe in Linux entfernen
Wenn Sie einem Benutzer Rechte entziehen möchten, entfernen Sie den Benutzer aus der Gruppe.
sudo gpasswd -d sandy python-programmers
Wenn der Benutzer Mitglied der Gruppe ist, wird Folgendes ausgegeben –
Removing user sandy from group python-programmers
Entfernen Sie eine Gruppe in Linux
Wenn Sie eine Gruppe unter Linux entfernen möchten, verwenden Sie groupdel
Befehl.
groupdel username
Wenn die zu löschende Gruppe die primäre Gruppe für einen der Benutzer im System ist, kann die Gruppe nicht gelöscht werden. Ändern Sie in diesem Fall die primäre Gruppe dieses Benutzers.
Prüfergruppe aus dem System löschen.
groupdel auditors
Fazit
Das ist alles dazu. Die Verwaltung von Linux-Nutzern und Linux-Gruppen ist einfach. Sobald Sie gelernt haben, wie Sie Benutzer verwalten, können Sie Ihre Dateien sicher und privat halten, ohne sich auf Bibliotheken oder Dienste von Drittanbietern verlassen zu müssen.
Wenn Sie glauben, dass ich etwas in dem Artikel übersehen habe, lassen Sie es mich bitte im Kommentarbereich unten wissen. Ich werde diesen Artikel alle drei Monate mit Ihren Vorschlägen (mit Ihrem Namen) aktualisieren.
Bitte lassen Sie mich wissen, wenn Sie eine der Anweisungen im Kommentarbereich unten nicht verstehen. Wenn Sie ein Nerd sind und einen Fehler in dem Artikel entdeckt haben, lassen Sie es mich bitte wissen, indem Sie die Kontaktseite verwenden oder unserem Discord-Server beitreten.