Benutzer und Berechtigungen
Ubuntu ist ein Mehrbenutzer-Betriebssystem und eine ordnungsgemäße Benutzerverwaltung und Berechtigungskonfiguration sind die Grundpfeiler der Systemsicherheit. In diesem Artikel wird erläutert, wie Sie Benutzer erstellen und verwalten, Gruppen konfigurieren und das Dateiberechtigungssystem in Ubuntu 26.04 verstehen.
Benutzerverwaltung
Benutzer erstellen
Verwenden Sie useradd, um einen neuen Benutzer zu erstellen:
# Create a user with a home directory
sudo useradd -m -s /bin/bash username
# Set the password
sudo passwd usernameDer Befehl adduser wird bevorzugt, da es sich um ein interaktives Wrapper-Skript handelt, das Sie durch die Einrichtung führt:
sudo adduser usernameBenutzerattribute ändern
Verwenden Sie usermod, um die Attribute eines vorhandenen Benutzers zu ändern:
# Change the default shell
sudo usermod -s /bin/zsh username
# Change home directory (and move files)
sudo usermod -d /home/newdir -m username
# Lock a user account
sudo usermod -L username
# Unlock a user account
sudo usermod -U username
# Rename a user
sudo usermod -l newname oldnameBenutzer löschen
# Delete a user but keep the home directory
sudo userdel username
# Delete a user and their home directory
sudo userdel -r usernameBenutzerinformationen anzeigen
# Check the current user
whoami
# View user ID and group information
id username
# List all users
cat /etc/passwd
# View currently logged-in users
who
wGruppenleitung
Gruppen erstellen und verwalten
# Create a new group
sudo groupadd developers
# Add a user to a group (preserving existing groups)
sudo usermod -aG developers username
# Add a user to multiple groups
sudo usermod -aG docker,sudo,developers username
# View the groups a user belongs to
groups username
# View all members of a group
getent group developers
# Delete a group
sudo groupdel developersPrimärgruppe vs. Ergänzungsgruppen
Jeder Benutzer hat eine primäre Gruppe und null oder mehr zusätzliche Gruppen:
# Change a user's primary group
sudo usermod -g newgroup username
# Modify supplementary groups (-a means append; without -a, all supplementary groups are replaced)
sudo usermod -aG extragroup usernamesudo-Konfiguration
Ubuntu 26.04 liefert sudo-rs, eine Rust-Neufassung, als Standardersatz für das traditionelle C sudo. Es ist mit der überwiegenden Mehrheit der gängigen sudoers-Syntax kompatibel (Benutzer-/Gruppenregeln, NOPASSWD, ALL, /etc/sudoers.d/ usw.), sodass die tägliche Verwendung unverändert bleibt. Einige obskure Anweisungen und Plugins von Drittanbietern sind jedoch noch nicht implementiert. Wenn bei einem Sudo-abhängigen Skript ein Fehler auftritt oder sich unerwartet verhält, führen Sie zunächst sudo --version aus, um die aktuelle Implementierung zu bestätigen, und installieren Sie bei Bedarf vorübergehend die herkömmliche Version mit sudo apt install sudo zur Fehlerbehebung. Wechseln Sie dann wieder zu Sudo-RS, sobald das Problem behoben ist.
Grundlegende Verwendung
# Execute a command with root privileges
sudo apt update
# Switch to the root user
sudo -i
# Execute a command as another user
sudo -u www-data commandHinzufügen eines Benutzers zur Sudo-Gruppe
# In Ubuntu, members of the sudo group have administrator privileges
sudo usermod -aG sudo usernameBearbeiten der sudoers-Datei
Verwenden Sie immer visudo, um die sudoers-Konfiguration zu bearbeiten, da vor dem Speichern eine Syntaxprüfung durchgeführt wird:
sudo visudoGängige Konfigurationsbeispiele:
# Allow a user to execute all commands without a password
username ALL=(ALL) NOPASSWD: ALL
# Allow a user to execute only specific commands
username ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx
# Allow group members to execute apt without a password
%developers ALL=(ALL) NOPASSWD: /usr/bin/aptSie können auch eigenständige Konfigurationsdateien in /etc/sudoers.d/ erstellen:
sudo visudo -f /etc/sudoers.d/developersGrundlagen der Dateiberechtigung
Berechtigungsnotation verstehen
Linux-Dateiberechtigungen bestehen aus drei Gruppen: Besitzer, Gruppe und andere. Jeder Satz umfasst Leseberechtigungen (r=4), Schreibberechtigungen (w=2) und Ausführungsberechtigungen (x=1).
# View file permissions
ls -la
# Example output:
# -rwxr-xr-- 1 user group 4096 Jan 1 12:00 script.sh
# │├─┤├─┤├─┤
# │ │ │ └── Others: r-- (read only)
# │ │ └── Group: r-x (read and execute)
# │ └── Owner: rwx (read, write, execute)
# └── File type: - regular file, d directory, l symlinkchmod – Berechtigungen ändern
# Numeric mode
chmod 755 script.sh # rwxr-xr-x
chmod 644 config.txt # rw-r--r--
chmod 600 secret.key # rw-------
# Symbolic mode
chmod u+x script.sh # Add execute permission for the owner
chmod g+w file.txt # Add write permission for the group
chmod o-r file.txt # Remove read permission for others
chmod a+r file.txt # Add read permission for everyone
# Recursively change directory permissions
chmod -R 755 /var/www/htmlchown – Eigentümerwechsel
# Change the file owner
sudo chown newuser file.txt
# Change both owner and group
sudo chown newuser:newgroup file.txt
# Change only the group
sudo chgrp newgroup file.txt
# Recursively change directory ownership
sudo chown -R www-data:www-data /var/wwwSonderberechtigungen
# SUID - Execute as the file owner
chmod u+s executable
chmod 4755 executable
# SGID - Execute as the file group / new files in directory inherit the group
chmod g+s directory
chmod 2755 directory
# Sticky Bit - Only the file owner can delete files (commonly used on /tmp)
chmod +t directory
chmod 1777 directoryumask – Standard-Berechtigungsmaske
# View current umask
umask
# Set umask (new file default = 0666 - umask, new directory = 0777 - umask)
umask 022 # New files 644, new directories 755
umask 077 # New files 600, new directories 700Um die umask dauerhaft zu ändern, bearbeiten Sie ~/.bashrc oder /etc/login.defs.
Erweiterte ACL-Berechtigungen
Wenn Standardberechtigungen nicht flexibel genug sind, können Sie ACLs (Zugriffskontrolllisten) verwenden:
# Install ACL tools
sudo apt install acl
# Grant permissions to a specific user
setfacl -m u:username:rwx /path/to/file
# Grant permissions to a specific group
setfacl -m g:groupname:rx /path/to/dir
# View ACL settings
getfacl /path/to/file
# Recursively set ACL
setfacl -R -m u:username:rwx /path/to/dir
# Set default ACL (newly created files inherit automatically)
setfacl -d -m u:username:rwx /path/to/dir
# Remove ACL
setfacl -x u:username /path/to/fileBest Practices
- Prinzip der geringsten Berechtigung: Gewähren Sie Benutzern nur die Mindestberechtigungen, die sie für ihre Arbeit benötigen.
- Vermeiden Sie die direkte Verwendung von Root: Verwenden Sie
sudo, um Verwaltungsbefehle auszuführen, anstatt als Root angemeldet zu bleiben. - Gruppen mit Bedacht nutzen: Die Verwaltung von Berechtigungen über Gruppen ist effizienter als die Konfiguration jedes Benutzers einzeln.
- Regelmäßig prüfen: Überprüfen Sie
/etc/passwdund/etc/groupregelmäßig, um Benutzer und Gruppen zu bereinigen, die nicht mehr benötigt werden. - Sensible Dateien schützen: Stellen Sie sicher, dass Dateien wie die Schlüssel
/etc/shadowund SSH über die richtigen Berechtigungen verfügen (600 oder strenger).