Ändern des Benutzers unter Linux: Ein detaillierter Leitfaden

Foto des Autors

By Jan

Befehle zum Ändern des Benutzers

Unter Linux stehen dir verschiedene Befehle zur Verfügung, mit denen du den Benutzer ändern kannst. Jeder Befehl hat seine eigenen Vor- und Nachteile und ist für bestimmte Szenarien geeignet.

Befehl "su"

Der Befehl su (Superuser) ermöglicht es dir, zu einem anderen Benutzer zu wechseln und dessen Berechtigungen temporär zu übernehmen.

Syntax:

su [Benutzername]

Beispiel:

Um zum Benutzer alice zu wechseln, gibst du Folgendes ein:

su alice

Nach erfolgreicher Authentifizierung wird deine Shell auf die Shell des Benutzers alice umgestellt.

Befehl "sudo"

Der Befehl sudo (Substitute User Do) ermöglicht es dir, einen Befehl mit den Berechtigungen eines anderen Benutzers auszuführen, ohne zu diesem Benutzer wechseln zu müssen.

Syntax:

sudo [Befehl]

Beispiel:

Um die Datei /etc/passwd mit den Berechtigungen des Benutzers root zu bearbeiten, gibst du Folgendes ein:

sudo vi /etc/passwd

Du wirst aufgefordert, das Passwort des Benutzers root einzugeben, um den Befehl auszuführen.

Befehl "chsh"

Der Befehl chsh (Change Shell) ermöglicht es dir, deine Standard-Shell zu ändern. Dies kann nützlich sein, wenn du eine andere Shell als die Standard-Shell verwenden möchtest.

Syntax:

chsh [-s <Shell>]

Beispiel:

Um deine Shell in Bash zu ändern, gibst du Folgendes ein:

chsh -s /bin/bash

Du wirst aufgefordert, dein Passwort einzugeben, um die Änderung zu bestätigen.

Befehl "usermod"

Der Befehl usermod (Modify User) ermöglicht es dir, Benutzerinformationen zu ändern, wie z. B. den Benutzernamen, die UID, die GID und die Shell.

Syntax:

usermod [Optionen] [Benutzername]

Beispiel:

Um den Benutzernamen von alice in alice_new zu ändern, gibst du Folgendes ein:

usermod -l alice_new alice

Verwendung des Befehls ’su‘

Der Befehl su (Substitute User) ermöglicht dir, dich als ein anderer Benutzer anzumelden, ohne dich abzumelden oder eine neue Terminalsitzung zu eröffnen. Dies ist besonders nützlich, wenn du administrative Aufgaben ausführen musst oder auf Dateien und Ressourcen zugreifen musst, die nur einem anderen Benutzer gehören.

Syntax

Die grundlegende Syntax des Befehls su lautet:

su [Optionen] Benutzername

Optionen

Einige häufig verwendete Optionen des Befehls su:

  • -c: Führe einen einzigen Befehl als angegebener Benutzer aus.
  • -s: Gib die zu verwendende Shell für den neuen Benutzer an.
  • -m: Lade die Umgebungsvariablen des neuen Benutzers.
  • -l: Login-Shell starten, als ob sich der neue Benutzer anmeldet.

Verwendung

Um dich als ein anderer Benutzer anzumelden, gib einfach den Befehl su gefolgt vom Benutzernamen ein:

su benutzername

Du wirst dann zur Eingabe des Passworts des Benutzers aufgefordert. Wenn das Passwort korrekt ist, wechselst du zur Shell des anderen Benutzers.

Beispiel

Angenommen, du möchtest dich als Benutzer admin anmelden. Du würdest folgenden Befehl eingeben:

su admin

Du wirst dann zur Eingabe des Passworts von admin aufgefordert. Nachdem du das Passwort eingegeben hast, wechselst du zur Shell von admin.

Zurückwechseln zum vorherigen Benutzer

Um zum vorherigen Benutzer zurückzuwechseln, kannst du den Befehl exit eingeben. Dies beendet die aktuelle Shell und du kehrst zur Shell des vorherigen Benutzers zurück.

Verwendung des Befehls ’sudo‘

Der sudo-Befehl (Superuser Do) ermöglicht es dir, Befehle mit erhöhten Rechten auszuführen, ohne dich als Root-Benutzer anmelden zu müssen. Dies ist nützlich, wenn du bestimmte Aufgaben ausführen musst, für die Administratorrechte erforderlich sind, beispielsweise:

  • Installieren oder Aktualisieren von Software
  • Ändern von Systemeinstellungen
  • Verwalten von Benutzerkonten

So verwendest du ’sudo‘

Um den sudo-Befehl zu verwenden, gib einfach "sudo" gefolgt vom Befehl ein, den du ausführen möchtest. Beispielsweise würdest du Folgendes eingeben, um das Software-Repository zu aktualisieren:

sudo apt update

Du wirst dann aufgefordert, dein Passwort einzugeben. Gib dein Passwort ein und drücke die Eingabetaste. Wenn du dein Passwort richtig eingegeben hast, wird der Befehl mit erhöhten Rechten ausgeführt.

Sicherheitserwägungen bei der Verwendung von ’sudo‘

Die Verwendung von sudo ist ein mächtiges Werkzeug, das mit Bedacht eingesetzt werden sollte. Wenn du sudo verwendest, hast du die Möglichkeit, alle möglichen Änderungen an deinem System vorzunehmen, auch solche, die schädlich sein könnten. Es ist wichtig, nur Befehle auszuführen, die du verstehst und denen du vertraust.

Es wird außerdem empfohlen, bei der Konfiguration von sudo-Berechtigungen vorsichtig vorzugehen. Du solltest nur den Benutzern und Gruppen sudo-Berechtigungen erteilen, die sie benötigen. Du kannst die Benutzer- und Gruppenkonfiguration mit dem Befehl "visudo" bearbeiten.

Beispiel für die Konfiguration von sudo-Berechtigungen:

# Erteile dem Benutzer 'username' sudo-Berechtigungen für den Befehl 'apt-get':
username ALL=(ALL) NOPASSWD: /usr/bin/apt-get

Häufige Fehler bei der Verwendung von ’sudo‘

Hier sind einige häufige Fehler bei der Verwendung von sudo:

  • Fehler: sudo: Befehl nicht gefunden

    • Dieser Fehler tritt auf, wenn der sudo-Befehl nicht installiert ist. Installiere sudo mit deinem Paketmanager (z. B. apt-get oder yum).
  • Fehler: sudo: Passwort erforderlich für username

    • Dieser Fehler tritt auf, wenn du dein Passwort nicht richtig eingegeben hast. Gib dein Passwort erneut ein und versuche es erneut.
  • Fehler: sudo: Zugriff verweigert

    • Dieser Fehler tritt auf, wenn du nicht über die Berechtigung zum Ausführen des Befehls als sudo verfügst. Wende dich an deinen Systemadministrator, um sudo-Berechtigungen anzufordern.

Verwendung des Befehls ‚chsh‘

Mit dem Befehl ‚chsh‘ kannst du deine Standard-Login-Shell ändern. Dies ist hilfreich, wenn du eine andere Shell als die vorkonfigurierte verwenden möchtest, beispielsweise Bash, Zsh oder Tcsh.

Syntax

Die allgemeine Syntax des Befehls ‚chsh‘ lautet:

chsh [-s <neue_shell>] <benutzername>
  • -s: Gibt die neue Standard-Shell an.
  • <neue_shell>: Der Pfad zur neuen Shell, z. B. ‚/bin/bash‘ oder ‚/bin/zsh‘.
  • : Der Benutzername des Kontos, dessen Shell geändert werden soll.

Ändern der eigenen Shell

Um deine eigene Standard-Shell zu ändern, führe den folgenden Befehl aus:

chsh -s <neue_shell>

Ändern der Shell eines anderen Benutzers

Als Root-Benutzer kannst du auch die Shell eines anderen Benutzers ändern. Verwende dazu folgende Syntax:

chsh -s <neue_shell> <benutzername>

Überprüfen der aktuellen Shell

Um deine aktuelle Standard-Shell zu überprüfen, führe den folgenden Befehl aus:

echo $SHELL

Sicherheitserwägungen

Es ist wichtig zu beachten, dass der Befehl ‚chsh‘ Sicherheitsrisiken birgt, da er die Standard-Shell eines Benutzers ändert. Dies kann es Angreifern ermöglichen, Sicherheitsmaßnahmen zu umgehen und auf das System zuzugreifen.

Daher solltest du den Befehl ‚chsh‘ nur verwenden, wenn du dir der Sicherheitsrisiken bewusst bist und entsprechende Maßnahmen getroffen hast, um dein System zu schützen.

Verwendung des Befehls ‚usermod‘

Der Befehl usermod ist ein vielseitiges Werkzeug zur Verwaltung von Benutzerkonten unter Linux. Mit ihm kannst du verschiedene Aspekte eines Benutzerkontos ändern, einschließlich des Benutzernamens, der UID (Benutzer-ID), der GID (Gruppen-ID) und der Home-Verzeichnisses.

Bearbeiten von Benutzerinformationen

Um den Benutzernamen zu ändern, verwende die Option -l:

sudo usermod -l neuer_benutzername alter_benutzername

Zum Ändern der UID verwendest du -u:

sudo usermod -u 1000 benutzername

Für die GID verwendest du -g:

sudo usermod -g gruppe benutzername

Das Home-Verzeichnis kannst du mit -d ändern:

sudo usermod -d /home/neues_verzeichnis benutzername

Sperren und Entsperren von Benutzerkonten

Mit usermod kannst du Benutzerkonten auch sperren und entsperren. Um ein Konto zu sperren, verwende -L:

sudo usermod -L benutzername

Zum Entsperren verwendest du -U:

sudo usermod -U benutzername

Hinzufügen und Entfernen von Benutzergruppen

Gruppenzugehörigkeiten kannst du mit den Optionen -G und -g bearbeiten. Um einen Benutzer einer Gruppe hinzuzufügen, verwende -G:

sudo usermod -G gruppe benutzername

Zum Entfernen einer Gruppenzugehörigkeit verwendest du -g:

sudo usermod -g neue_gruppe -G -gruppe benutzername

Sicherheitserwägungen

Bei der Verwendung von usermod sind einige wichtige Sicherheitsaspekte zu beachten. Ändere keine Benutzerinformationen, es sei denn, du hast dazu die entsprechende Berechtigung. Das Ändern von Benutzerinformationen kann die Systemstabilität beeinträchtigen.

Sicherheitserwägungen bei der Benutzeränderung

Das Ändern von Benutzern unter Linux kann ein Risiko für die Sicherheit deines Systems darstellen. Daher ist es wichtig, die folgenden Sicherheitsaspekte zu beachten:

Sicherstellung angemessener Berechtigungen

Stelle sicher, dass der neue Benutzer nur die Berechtigungen erhält, die zur Ausführung seiner Aufgaben unbedingt erforderlich sind. Dies kann durch Verwendung des Befehls ’sudo‘ oder ‚usermod‘ erreicht werden.

Überwachung von Benutzeraktivitäten

Überwache die Aktivitäten des neuen Benutzers, um Anzeichen verdächtiger Aktivitäten frühzeitig zu erkennen. Tools wie ‚auditd‘ oder ‚logwatch‘ können für diesen Zweck verwendet werden.

Verwendung starker Passwörter

Verwende für alle Benutzerkonten starke und eindeutige Passwörter. Erwäge die Verwendung eines Passwort-Managers wie ‚KeePassXC‘ oder ‚LastPass‘ zur sicheren Speicherung deiner Passwörter.

Deaktivierung nicht verwendeter Konten

Deaktiviere oder lösche nicht verwendete Konten, um das Risiko unbefugten Zugriffs zu verringern. Dies kann mit dem Befehl ‚userdel‘ erreicht werden.

Überprüfung von Benutzerberechtigungen

Überprüfe regelmäßig die Berechtigungen aller Benutzer, um sicherzustellen, dass sie nicht versehentlich geändert wurden. Dies kann mit dem Befehl ‚ls -l /etc/passwd‘ erreicht werden.

Beschränkung des root-Zugriffs

Beschränke den root-Zugriff nur auf die Personen, die ihn unbedingt benötigen. Verwende stattdessen ’sudo‘ oder ’su‘ für Aufgaben, die erhöhte Berechtigungen erfordern.

Aktivierung von Firewall und IDS

Aktiviere eine Firewall und ein Intrusion Detection System (IDS) auf deinem Server, um verdächtige Aktivitäten zu erkennen und zu blockieren.

Regelmässige Sicherheitsupdates

Führe regelmäßig Sicherheitsupdates durch, um bekannte Schwachstellen zu schließen und dein System zu schützen.

Beheben häufiger Fehler bei der Benutzeränderung

Bei der Änderung von Benutzern unter Linux kannst du auf einige häufige Fehler stoßen. Hier ist eine Anleitung, wie du diese Fehler beheben kannst:

Fehler: "su: Befehl nicht gefunden"

Ursache: Der Befehl su ist nicht in deiner aktuellen Shell installiert.

Lösung: Installiere den Befehl su. Unter Ubuntu und Debian kannst du den folgenden Befehl verwenden:

sudo apt install shadow

Fehler: "sudo: Befehl nicht gefunden"

Ursache: Der Befehl sudo ist nicht in deiner aktuellen Shell installiert.

Lösung: Installiere den Befehl sudo. Unter Ubuntu und Debian kannst du den folgenden Befehl verwenden:

sudo apt install sudo

Fehler: "chsh: Befehl nicht gefunden"

Ursache: Der Befehl chsh ist nicht in deiner aktuellen Shell installiert.

Lösung: Installiere den Befehl chsh. Unter Ubuntu und Debian kannst du den folgenden Befehl verwenden:

sudo apt install util-linux

Fehler: "usermod: Befehl nicht gefunden"

Ursache: Der Befehl usermod ist nicht in deiner aktuellen Shell installiert.

Lösung: Installiere das Paket shadow-utils. Unter Ubuntu und Debian kannst du den folgenden Befehl verwenden:

sudo apt install shadow-utils

Fehler: "Zugriff verweigert"

Ursache: Du hast keine ausreichenden Berechtigungen, um den Benutzer zu ändern.

Lösung: Stelle sicher, dass du als Superuser (root) oder als Benutzer mit Sudo-Berechtigungen angemeldet bist.

Fehler: "Benutzer existiert nicht"

Ursache: Der Benutzer, den du ändern möchtest, existiert nicht.

Lösung: Erstelle den Benutzer zuerst mit dem Befehl useradd. Unter Ubuntu und Debian kannst du den folgenden Befehl verwenden:

sudo useradd neuer_benutzer

Fehler: "Shell nicht gefunden"

Ursache: Die Shell, die du für den Benutzer festlegen möchtest, ist nicht installiert oder nicht in der Datei /etc/shells aufgeführt.

Lösung: Installiere die Shell oder füge sie zur Datei /etc/shells hinzu.

Verwalten von Benutzerrechten und Berechtigungen

Als Systemadministrator ist es wichtig, die Rechte und Berechtigungen deiner Benutzer zu verwalten. Dies gewährleistet, dass jeder Benutzer nur auf die Ressourcen zugreifen kann, die er für seine Aufgaben benötigt.

Festlegen von Benutzerrechten

Du kannst Benutzerberechtigungen mit dem Befehl usermod festlegen. Dieser Befehl verfügt über verschiedene Optionen zum Konfigurieren von Parametern wie:

  • -a, –append: Fügt einer Liste von Gruppen Berechtigungen hinzu, ohne bestehende Berechtigungen zu überschreiben.
  • -G, –groups: Weist den Benutzer den angegebenen Gruppen zu.
  • -d, –home: Legt das Home-Verzeichnis des Benutzers fest.
  • -s, –shell: Legt die Standard-Shell des Benutzers fest.

Beispiel:

Zum Hinzufügen des Benutzers john zur Gruppe wheel:

usermod -aG wheel john

Einschränken von Benutzerberechtigungen

Gelegentlich musst du möglicherweise die Berechtigungen eines Benutzers einschränken. Dies kann mithilfe von Benutzerrichtlinien erreicht werden, die Zugriffskontrolllisten (ACLs) definieren.

Mit ACLs kannst du Berechtigungen für bestimmte Dateien und Verzeichnisse festlegen. Dies ist nützlich, um vertrauliche Daten vor unbefugtem Zugriff zu schützen.

Zum Erstellen einer ACL für die Datei secret.txt kannst du den folgenden Befehl verwenden:

setfacl -m u:john:rwx secret.txt

ACLs werden auch von SELinux (Security Enhanced Linux) unterstützt, das eine leistungsstarke Methode zur Durchsetzung von Sicherheitsrichtlinien bietet. SELinux ermöglicht es dir, Kontextlabeln für Dateien und Prozesse zu definieren, um den Zugriff basierend auf dem Label zu kontrollieren.

Konfigurieren von sudo

sudo ist ein leistungsstarkes Tool, mit dem Benutzer Befehle mit Root-Rechten ausführen können. Du kannst sudo so konfigurieren, dass es bestimmte Berechtigungen gewährt, ohne dem Benutzer vollständige Root-Zugriff zu gewähren.

Um die sudo-Einstellungen zu konfigurieren, bearbeite die Datei /etc/sudoers. Diese Datei definiert Regeln, die angeben, welche Benutzer welche Befehle mit sudo ausführen können.

Beispiel:

Zum Gewähren der Berechtigung für den Benutzer john, den Befehl command1 mit sudo auszuführen:

john ALL=(ALL) NOPASSWD: /usr/bin/command1

Konfigurieren von standardmäßigen Benutzer-Shells

Die Standard-Shell eines Benutzers legt fest, welche Befehlszeileninterpreter verwendet werden soll, wenn sich der Benutzer anmeldet. Die Konfiguration der Standard-Shell dient dazu, die Arbeitsumgebung jedes Benutzers individuell anzupassen und die Effizienz zu steigern.

Wie überprüfe ich die aktuelle Standard-Shell?

Du kannst die aktuelle Standard-Shell eines Benutzers mit dem folgenden Befehl überprüfen:

chsh -s

Ändern der Standard-Shell

Du kannst die Standard-Shell eines Benutzers mit dem Befehl chsh ändern. Als Root-Benutzer gibst du den folgenden Befehl ein, gefolgt vom Benutzernamen und dem Pfad zur neuen Shell:

chsh -s /bin/sh username

Für Nicht-Root-Benutzer wird ein Passwort abgefragt. Wenn du die Standard-Shell für deinen eigenen Benutzer ändern möchtest, kannst du den folgenden Befehl ohne Root-Berechtigungen verwenden:

chsh

Empfohlene Shells

Zu den gängigen Optionen für Benutzer-Shells gehören:

  • Bash: Eine beliebte Shell, die über umfangreiche Funktionen und Anpassungsmöglichkeiten verfügt.
  • Zsh: Eine erweiterte Shell mit verbesserter Vervollständigung, Themen und Plugins.
  • Ksh: Eine Shell, die sich durch ihre Kompatibilität mit der Bourne-Shell und ihre skriptbasierten Funktionen auszeichnet.

Auswählen einer Shell

Bei der Auswahl einer Shell solltest du folgende Faktoren berücksichtigen:

  • Benutzerpräferenzen: Wähle eine Shell, die zu deinem Arbeitsablauf passt.
  • Funktionalitätsanforderungen: Überlege, welche Funktionen für deine Aufgaben wichtig sind.
  • Kompatibilität: Vergewissere dich, dass die Shell mit deinen Anwendungen und Skripten kompatibel ist.

Sicherheitserwägungen

  • Ändere die Standard-Shell nur mit Bedacht.
  • Überprüfe die Berechtigungen der neuen Shell und ihrer Installationsverzeichnisse.
  • Erwäge die Verwendung einer Shell, die Sicherheitsfunktionen unterstützt, wie z. B. Bash mit aktivierter Restriktionsstufe.

Benutzerprofile und Umgebungsvariablen

Benutzerprofile und Umgebungsvariablen spielen eine entscheidende Rolle bei der Personalisierung deiner Linux-Umgebung.

Benutzerprofile

Jedes Mal, wenn du dich anmeldest, lädt Linux dein Benutzerprofil. Es handelt sich dabei um eine Sammlung von Konfigurationsdateien, die deine bevorzugten Einstellungen, Umgebungsvariablen und Shell-Konfigurationen enthält.

Zu den gängigen Benutzerprofilen gehören:

  • ~/.profile: Globale Konfigurationen für deine Shell
  • ~/.bashrc: Konfigurationen für die Bash-Shell
  • ~/.zshrc: Konfigurationen für die Zsh-Shell

Umgebungsvariablen

Umgebungsvariablen sind benannte Werte, die bestimmen, wie Programme auf deinem System ausgeführt werden. Sie können Variablen wie deinen Benutzernamen ($USER), dein aktuelles Verzeichnis ($PWD) oder den Pfad zum Befehl su ($SUDO).

Du kannst Umgebungsvariablen auf verschiedene Arten festlegen:

  • Temporär im Terminal: export VARNAME=value
  • Dauerhaft in deinem Profil: echo "export VARNAME=value" >> ~/.profile
  • Systemweit in /etc/profile oder /etc/environment

Schlussfolgerung

Das Verständnis von Benutzerprofilen und Umgebungsvariablen ist unerlässlich, um deine Linux-Umgebung an deine Bedürfnisse anzupassen. Indem du diese Konfigurationen verwaltest, kannst du ein optimiertes und personalisiertes Benutzererlebnis schaffen.

Schreibe einen Kommentar