Root Befehle ohne sudo auf Debian, wie?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

sudoers ist ja eien Konfiguration für sudo. D.h. der User muß natürlich trotzdem mit sudo die Rechte ändern, um ausführen zu können.

Die Frage ist ja eher, warum man einem User Root Rechte gewähren möchte, vor allem ohne Einschränkungen, so wie es aussieht?


linus34 
Beitragsersteller
 11.10.2021, 21:22

Grob heruntergebrochen, ich habe eine Serveranwendung die sich mit SSH-Keys ohne Authentifizierung auf die Clients verbinden kann und auch die Möglichkeit haben soll elementare Änderungen an die Clients vornehmen zu können, Stichwort Automatisierung. Der "normale" SSH-Login für diesen Testuser ist deaktiviert weshalb es mir wie ein vernünftiger Mittelweg vorkam, statt dem Root-User dafür zu benutzen.

Daher möchte ich die Möglichkeit haben Root-Befehle mit diesen User ausführen, ohne das sudo vorab schreiben zu müssen, also im Grunde als wenn der Testuser der Root-User selbst wäre.

julihan41  11.10.2021, 21:29
@linus34

Dann erstelle eine Schnittstelle, sodass nur die benötigen Befehle ausgeführt werden können und kein komplettes Root ohne Passwort 🙈

linus34 
Beitragsersteller
 11.10.2021, 21:33
@julihan41

Sagt dir zufällig Ansible etwas? Ich habe aus gutem Grund geschrieben, dass der User alles können soll. Mir wäre es neu, dass man das auf einige Befehle herunterbrechen kann was ich brauche. ^^

KarlRanseierIII  11.10.2021, 21:43
@linus34

Okay, Du willst also die Nutzung von root bei der SSH-Verbindung vermeiden udn stattdessen einen User nehmen, der trotzdem alle Privilegien hat.

Soweit nachvollziehbar.

Ich verstehe nicht, worin das Problem besteht ein sudo ausführen zu müssen.

Du weißt, daß Du auch ein sudo -i ausführen kannst?

Insbesondere kannst Du dies auch direkt vom sshd ausführen lassen.

Damit nicht genug, Du kannst für den gleichen SSH-User, z.B. root auch mehrere Schlüssel hinterlegen udn festlegen, daß bei Verwendung eine sbestimmten Schlüssels ein bestimmtes Kommando ausgeführt wird, egal was der sich verbindende Client möchte.

Weiter gedacht: Lege für die Kombination aus Nutzer+Schlüssel fest, daß ein bestimmtes Skript ausgeführut wird. Dieses wiederum kann als Gatekeeper fungieren und quasi explizit nur bestimmte Aktionen zulassen.

Lies vielleicht mal das hier:

https://www.thomas-krenn.com/de/wiki/Ausf%C3%BChrbare_SSH-Kommandos_per_authorized_keys_einschr%C3%A4nken

Und überlege, ob DU nicht eher in diese Richtugn gehen willst.

linus34 
Beitragsersteller
 11.10.2021, 22:20
@KarlRanseierIII

Dazu kann ich gerade nicht viel sagen aber ich werde mir deine Denkanstöße ansehen, besten Dank. :)

julihan41  11.10.2021, 22:34
@linus34

Aber bei Ansible sollte das eigentlich anders funktionieren. Also ich kenne mich mit Ansible nicht aus, aber es würde mich irritieren, wenn das Framework dafür keinen sinnvollen Weg hat...

linus34 
Beitragsersteller
 14.10.2021, 20:51
@julihan41

Ich habe mittlerweile eine Lösung gefunden. Ansible bietet in der Tat einen Weg, es gibt einen Parameter der mir nicht bekannt war.

julihan41  14.10.2021, 21:26
@linus34

Das freut mich sehr. Damit ist die Sicherheit deutlich erhöht.

Wenn ein "user" der Gruppe "root" hinzugefügt wird, hat er noch lange keine umfassenden root-Rechte. Mitglieder der Gruppe root (bin ich als user auch) darf Systemmeldungen empfangen und diverse Verzeichnisse besuchen, die root vorbehalten sind. Das war es dann auch schon.

Um Befehle mit root-Rechten auszuführen, muss man diese root-Rechte erwerben und das geht nur mit 'sudo' oder 'su root' oder 'su -'.

... und dass das so ist, hat seine Gründe!

Sudo ermöglichen ohne Passwort ist eine richtig_dumme_Idee. Das ist ein wichtiges Sicherheitsfeature und sollte nicht umgangen werden.

Der Fehler liegt wahrscheinlich darin, dass du Testuser zwei mal in der Datei hast.

Ich bleibe aber bei keiner Empfehlung: lass die Passwort Abfrage bestehen. Hindert einem auch daran, unüberlegt Befehle mit root Rechten zu spamen wie

sudo rm -rf /

linus34 
Beitragsersteller
 11.10.2021, 21:29

Habe den zweiten Parameter, also "Testuser ALL=(ALL) NOPASSWD: ALL" erst zuletzt eingefügt, davor hat es auch nicht funktioniert.

Ich verstehe dein Argument absolut aber ein Login mit diesem User ist nur mit einem gültigem SSH-Key möglich, die anderen Wege habe ich deaktiviert.

Ich selbst werde den User auch nicht benutzen sondern eine Software die halt umfassende Rechte braucht auf den Hosts. Korrigiere mich gerne aber ich denke damit ist die Gefahr ziemlich gut entschärft.