Sudo: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''sudo''' - Kommandos mit der Identität eines anderen Benutzers ausführen
'''sudo''' - [[Kommando]]s mit der [[Linux/Identität|Identität]] eines anderen [[Linux/Benutzer|Benutzer]]s [[ausführen]]


== Beschreibung ==
== Beschreibung ==
== Installation ==
== Installation ==
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
# apt-get install sudo
apt-get install sudo
</syntaxhighlight>
</syntaxhighlight>
== Aufruf ==
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
Zeile 12: Zeile 13:
sudo -l [-ABknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
sudo -l [-ABknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
sudo [-ABbEHnPS] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-r role] [-t type] [-T timeout] [-u user] [VAR=value] [-i | -s] [command]
sudo [-ABbEHnPS] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-r role] [-t type] [-T timeout] [-u user] [VAR=value] [-i | -s] [command]
sudoedit [-ABknS] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-r role] [-t type] [-T timeout] [-u user] file ...
sudoedit [-ABknS] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-r role] [-t type] [-T timeout] [-u user] file ..
</syntaxhighlight>
</syntaxhighlight>


Zeile 24: Zeile 25:
* Systemkonfigurationen ändern (sudo nano /etc/fstab)
* Systemkonfigurationen ändern (sudo nano /etc/fstab)


Der Linux-Befehl sudo ermöglicht einem Benutzer, einen Befehl als Superuser oder als ein anderer Benutzer auszuführen.
Der Linux-Befehl sudo ermöglicht einem Benutzer, einen Befehl als Superuser oder als ein anderer Benutzer auszuführen
* sudo erfordert die Angabe eines Passworts.
* sudo erfordert die Angabe eines Passworts
* Dies ist normalerweise das Benutzerpasswort, nicht das Root-Passwort
* Dies ist normalerweise das Benutzerpasswort, nicht das Root-Passwort


; Beispiel
; Beispiel
usermod -G sudo -a Otto  
<syntaxhighlight lang="bash" highlight="1" line>
usermod -G sudo -a Otto
</syntaxhighlight>


Jetzt gehört der User Otto der Gruppe sudo an.
sudo apt update


Und kann mit sudo root Befehle ausführen, ohne sich als root anzumelden.
Jetzt gehört der User Otto der Gruppe sudo an
less /etc/group
<syntaxhighlight lang="bash" highlight="1" line>
sudo apt update
</syntaxhighlight>
 
Und kann mit sudo root Befehle ausführen, ohne sich als root anzumelden
<syntaxhighlight lang="bash" highlight="1" line>
less /etc/group
</syntaxhighlight>


Mit diesem Befehl lassen sich Gruppen anzeigen und nachvollziehen, wer zu sudo gehört. Siehe [[/etc/group]]
Mit diesem Befehl lassen sich Gruppen anzeigen und nachvollziehen, wer zu sudo gehört. Siehe [[/etc/group]]


=== Sicherheit ===
=== Problembehebung ===
; "could not open display"
; "could not open display"


;/etc/sudoers.d
/etc/sudoers.d
Defaults env_keep += "DISPLAY"
<syntaxhighlight lang="bash" highlight="1" line>
Defaults env_keep += "DISPLAY"
</syntaxhighlight>


This will allow sudo to pass the DISPLAY environment variable to the program it runs, and those programs will then be able to connect to the correct DISPLAY.
Dadurch kann sudo die Umgebungsvariable DISPLAY an das ausgeführte Programm übergeben, und diese Programme können dann eine Verbindung zum richtigen DISPLAY herstellen
xhost +
<syntaxhighlight lang="bash" highlight="1" line>
 
xhost +
=== Problembehebung ===
</syntaxhighlight>


== Konfiguration ==
== Konfiguration ==
Nach der Installation muss jeder Benutzer, der SuperUser-Rechte erhalten soll, der Gruppe "sudo" hinzugefügt werden
Nach der Installation muss jeder Benutzer, der SuperUser-Rechte erhalten soll, der Gruppe "sudo" hinzugefügt werden
# usermod -G sudo -a BENUTZERNAME
<syntaxhighlight lang="bash" highlight="1" line>
usermod -G sudo -a BENUTZERNAME
</syntaxhighlight>


; Ausführen von sudo ohne Passwort
; Ausführen von sudo ohne Passwort
  # visudo
<syntaxhighlight lang="bash" highlight="1" line>
visudo
</syntaxhighlight>


In der sudoers.d Datei in der letzten Zeile folgenden Befehl einfügen:
In der sudoers.d Datei in der letzten Zeile folgenden Befehl einfügen
'USER' ALL=(ALL) NOPASSWD:ALL
<syntaxhighlight lang="bash" highlight="1" line>
'USER' ALL=(ALL) NOPASSWD:ALL
</syntaxhighlight>


* User ist der Name des Users, den das betreffen soll.
* User ist der Name des Users, den das betreffen soll


; Einzelne Befehle auszuschließen
; Einzelne Befehle auszuschließen
Zeile 70: Zeile 86:
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Dokumentation ====
==== Dokumentation ====


Zeile 86: Zeile 103:


</noinclude>
</noinclude>
== Beschreibung ==
''sudo'' kann Programmaufrufen vorangestellt werden
* Er ermöglicht berechtigten Benutzern, das Programm im Namen und mit den Rechten eines anderen Benutzers auszuführen.
* sudo, sudoedit — execute a command as another user
sudo ermöglicht es einem zugelassenen Benutzer, einen Befehl als Superuser oder als ein anderer Benutzer auszuführen, wie in der Sicherheitsrichtlinie angegeben.
* Die echte (nicht effektive) Benutzer-ID des aufrufenden Benutzers wird verwendet, um den Benutzernamen zu bestimmen, mit dem die Sicherheitsrichtlinie abgefragt wird.
sudo unterstützt eine Plugin-Architektur für Sicherheitsrichtlinien, Auditing und Input/Output-Logging
* Dritte können ihre eigenen Plugins entwickeln und vertreiben, die nahtlos mit dem sudo-Frontend zusammenarbeiten.
* Die Standard-Sicherheitsrichtlinie ist sudoers, die über die Datei /etc/sudoers oder über LDAP konfiguriert wird.
* Weitere Informationen finden Sie im Abschnitt Plugins.
Die Sicherheitsrichtlinie bestimmt, ob und welche Rechte ein Benutzer hat, um sudo auszuführen.
* Die Richtlinie kann verlangen, dass sich die Benutzer mit einem Passwort oder einem anderen Authentifizierungsmechanismus authentifizieren.
* Wenn eine Authentifizierung erforderlich ist, wird sudo beendet, wenn das Passwort des Benutzers nicht innerhalb einer konfigurierbaren Zeitspanne eingegeben wird.
* Dieses Zeitlimit ist richtlinienspezifisch; das Standardzeitlimit für die Kennworteingabeaufforderung für die Sicherheitsrichtlinie sudoers beträgt 0 Minuten.
Sicherheitsrichtlinien können das Zwischenspeichern von Anmeldeinformationen unterstützen, damit der Benutzer sudo für eine gewisse Zeit erneut ausführen kann, ohne dass eine Authentifizierung erforderlich ist.
Die sudoers-Richtlinie zwischenspeichert Anmeldeinformationen für jedes Terminal für 15 Minuten.
* Weitere Informationen finden Sie unter den Optionen timestamp_type und timestamp_timeout in sudoers(5).
* Wenn Sie sudo mit der Option -v ausführen, kann ein Benutzer die zwischengespeicherten Anmeldeinformationen aktualisieren, ohne einen Befehl auszuführen.
Auf Systemen, auf denen sudo die primäre Methode zur Erlangung von Superuser-Rechten ist, müssen unbedingt Syntaxfehler in den Konfigurationsdateien der Sicherheitsrichtlinien vermieden werden.
* Für die Standard-Sicherheitsrichtlinie sudoers(5) sollten Änderungen an den Konfigurationsdateien mit dem Dienstprogramm visudo(8) vorgenommen werden.
Wenn es als sudoedit aufgerufen wird, ist die Option -e (siehe unten) impliziert.
Sicherheitsrichtlinien und Audit-Plugins können erfolgreiche und fehlgeschlagene Versuche, sudo auszuführen, protokollieren.
* Wenn ein E/A-Plugin konfiguriert ist, können auch die Ein- und Ausgaben des laufenden Befehls protokolliert werden.
== Konfiguration ==
=== Dateien ===

Aktuelle Version vom 13. Dezember 2024, 12:29 Uhr

sudo - Kommandos mit der Identität eines anderen Benutzers ausführen

Beschreibung

Installation

apt-get install sudo

Aufruf

sudo -h | -K | -k | -V
sudo -v [-ABknS] [-g group] [-h host] [-p prompt] [-u user]
sudo -l [-ABknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
sudo [-ABbEHnPS] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-r role] [-t type] [-T timeout] [-u user] [VAR=value] [-i | -s] [command]
sudoedit [-ABknS] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-r role] [-t type] [-T timeout] [-u user] file ..

Optionen

Parameter

Umgebungsvariablen

Exit-Status

Anwendung

Beispielsweise für Aufgaben auszuführen, die sonst root vorbehalten sind

  • Programme installieren (sudo apt-get install ...)
  • Systemkonfigurationen ändern (sudo nano /etc/fstab)

Der Linux-Befehl sudo ermöglicht einem Benutzer, einen Befehl als Superuser oder als ein anderer Benutzer auszuführen

  • sudo erfordert die Angabe eines Passworts
  • Dies ist normalerweise das Benutzerpasswort, nicht das Root-Passwort
Beispiel
usermod -G sudo -a Otto


Jetzt gehört der User Otto der Gruppe sudo an

sudo apt update

Und kann mit sudo root Befehle ausführen, ohne sich als root anzumelden

less /etc/group

Mit diesem Befehl lassen sich Gruppen anzeigen und nachvollziehen, wer zu sudo gehört. Siehe /etc/group

Problembehebung

"could not open display"

/etc/sudoers.d

Defaults env_keep += "DISPLAY"

Dadurch kann sudo die Umgebungsvariable DISPLAY an das ausgeführte Programm übergeben, und diese Programme können dann eine Verbindung zum richtigen DISPLAY herstellen

xhost +

Konfiguration

Nach der Installation muss jeder Benutzer, der SuperUser-Rechte erhalten soll, der Gruppe "sudo" hinzugefügt werden

usermod -G sudo -a BENUTZERNAME
Ausführen von sudo ohne Passwort
visudo

In der sudoers.d Datei in der letzten Zeile folgenden Befehl einfügen

'USER' ALL=(ALL) NOPASSWD:ALL
  • User ist der Name des Users, den das betreffen soll
Einzelne Befehle auszuschließen
  • in der Klammer die Befehle listen, die gewünscht sind, in diesem Fall sind das alle Befehle (ALL)

Dateien

Anhang

Siehe auch

Dokumentation

Man-Page
Info-Pages

Links

Projekt
Weblinks
  1. https://wiki.ubuntuusers.de/sudo/