Seite 1 von 1

(gelöst, nehm' ich an) /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 09:33:27
von fischig

Code: Alles auswählen

[Benutzername] ALL=(root) NOPASSWD:[/Pfad/zum/script]
Was bedeutet „ALL=(root)“ in diesem sudoers-Eintrag, insbesondere über das „ALL“ grüble ich. Ich habe mir mal einen Abschnitt zu ALL in der endlos langen englischsprachigen manpage zu sudoers von deepl übersetzen lassen:
The reserved word ALL is a built-in alias that always causes a match to succeed. It can be
used wherever one might otherwise use a Cmnd_Alias, User_Alias, Runas_Alias, or Host_Alias.
Attempting to define an alias named ALL will result in a syntax error. Please note that using
ALL can be dangerous since in a command context, it allows the user to run any command on the
system.
Das reservierte Wort ALL ist ein eingebauter Alias, der eine Übereinstimmung immer erfolgreich macht. Es kann
verwendet werden, wo sonst ein Cmnd_Alias, User_Alias, Runas_Alias oder Host_Alias verwendet werden könnte.
Der Versuch, einen Alias namens ALL zu definieren, führt zu einem Syntaxfehler. Bitte beachten Sie, dass die Verwendung von
ALL gefährlich sein kann, da es dem Benutzer in einem Befehlskontext erlaubt, jeden Befehl auf dem
System auszuführen.
Aber ich verstehe den Abschnitt trotzdem nicht. Unter Alias verstehe ich in natürlicher Sprache sowas wie „Zweitname, Deckname, Pseudonym“
Den Rest des sudoers-Eintrags glaube ich zu verstehen: Dem [Benutzer] wird erlaubt, ein root vorbehaltenes [script] ohne Rootpasswort (NOPASSWD) auszuführen.

Re: /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 09:51:38
von DeletedUserReAsG
fischig hat geschrieben: ↑ zum Beitrag ↑
30.10.2022 09:33:27
Unter Alias verstehe ich in natürlicher Sprache sowas wie „Zweitname, Deckname, Pseudonym“
Die Erläuterung zu den Aliases steht ebenfalls in der Manpage:
Manpageschreiberling hat geschrieben:

Code: Alles auswählen

  Aliases
    There are four kinds of aliases: User_Alias, Runas_Alias, Host_Alias
    and Cmnd_Alias.  Beginning with sudo 1.9.0, Cmd_Alias may be used in
    place of Cmnd_Alias if desired.
    [… nähere Erläuterungen der einzelnen Arten folgen …]

Re: /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 10:12:58
von bluestar
fischig hat geschrieben: ↑ zum Beitrag ↑
30.10.2022 09:33:27

Code: Alles auswählen

[Benutzername] ALL=(root) NOPASSWD:[/Pfad/zum/script]
Was bedeutet „ALL=(root)“ in diesem sudoers-Eintrag, insbesondere über das „ALL“ grüble ich.
ALL steht in diesem Falle, dass dieser Befehl auf allen Rechnern ausgeführt werden darf, die Macher von sudo gehen davon aus, dass du über mehrere Hosts eine sudoers Datei verteilst und eine Konfiguration je Host möglich ist.

(root) steht für den User mit dessen Rechten du den nachfolgenden Befehl ausführst, in dem Falle root. (www-data) würde den Befehl hingegen als Benutzer www-data ausführen.

Nähere Details findest du hier: https://www.oreilly.com/library/view/li ... 05s06.html

Re: /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 10:21:22
von fischig
Die maschine ist nicht netzwerklos, aber ich habe nicht vor diese sudoers auf weiteren Maschinen zu verteilen.

Kann ich das Konstrukt "„ALL=(root)“" einfach weglassen?

Re: /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 10:22:17
von tobo
fischig hat geschrieben: ↑ zum Beitrag ↑
30.10.2022 09:33:27

Code: Alles auswählen

[Benutzername] ALL=(root) NOPASSWD:[/Pfad/zum/script]
Was bedeutet „ALL=(root)“ in diesem sudoers-Eintrag, insbesondere über das „ALL“ grüble ich.
Das ALL steht stellvetretend für jeden Rechner, der durch diese Datei beeinflusst werden soll. Zulässig ist eine kommaseparierte Liste aller erreichbaren Hostnames - auf netzwerklosen Systemen ist dieses ALL also gleichzusetzen mit der Ausgabe von `hostname` auf demselben System.

Re: /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 10:32:56
von fischig
Die Maschine ist nicht „netzwerklos“, aber ich habe nicht vor, diese sudoers auf weiteren Maschinen zu verteilen.

Kann ich das Konstrukt "ALL=(root)" einfach weglassen?

Re: /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 10:41:19
von tobo
Das ist die substanzielle Information, auf welchem Rechner du in wessen Namen agieren willst. Was denkst du?

Re: /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 10:53:09
von bluestar
fischig hat geschrieben: ↑ zum Beitrag ↑
30.10.2022 10:32:56
Kann ich das Konstrukt "ALL=(root)" einfach weglassen?
Nein, anderenfalls kann sudo deine Konfigurationsdatei nicht mehr verarbeiten(parsen).

Das Programm sudo gibt nunmal die Syntax vor, an die wir uns alle beim erstellen von SUDO Konfigurationsdateien halten müssen.

Re: /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 12:07:57
von fischig
Vermutlich(!) handelt es sich bei „meinem“ ALL also um so einen „Host_Alias“ (gelesen hatte ich auch diesen Abschnitt in man sudoers, vor Threaderöffnung, erhellend fand ich ihn in meinem Zusammenhang nicht). Den habe ich jetzt ersetzt durch den Hostnamen. Die Zeile sieht jetzt so aus:

Code: Alles auswählen

[benutzername] [hostname]=(root) NOPASSWD:/pfad/zum/script
Scheint zu tun, was ich getan haben will. Meine Absicht war nie gegen die Syntax von sudo zu verstoßen, aber in meiner Aufgabenstellung angepasst nutzen will ich sie schon gerne.
Seltsam „pädagogischer“ Threadverlauf. :roll: Nichtsdestotrotz: Dankeschön für die Denkanstöße!

Re: (gelöst, nehm' ich an) /etc/sudoers, Syntaxfragen

Verfasst: 30.10.2022 13:04:16
von tijuca
sudo ist nun keine allerneueste Rocket Science ...

Das Netz ist voll von Infos und (auch guten) Anleitungen, eine Suchmaschine sollte man heutzutage schon bedienen können. :roll: