Root Befehle ohne sudo auf Debian, wie?
Ich habe für eine Software auf einigen Debian Maschinen einen separaten User angelegt und diesen auch eigentlich auch in die Root-Gruppe aufgenommen. Nun habe ich das Problem, dass wenn ich Root-Befehle ohne vorab sudo einzugeben ausführen will, ich die Fehlermeldung "13: Permission Denied" bekomme. Ich konnte herausfinden, dass diese Fehlermeldung Aussagt, dass es weiterhin Probleme mit den Root-Rechten für diesen User geben muss?
Folgende Schritte habe ich umgesetzt:
Diese Parameter in die sudoers-Datei eingefügt:
# User privilege specification
root ALL=(ALL:ALL) ALL
Testuser ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
Testuser ALL=(ALL) NOPASSWD: ALL
Mit dem folgenden Befehl habe ich den User eigentlich auch in die Root-Gruppe aufgenommen:
root@Testhost1:~# gpasswd -a Testuser sudo
Adding user Testuser to group sudo
Bitte seid gnädig, ich bin noch relativ unerfahren mit Linux-Administrierung. :)
3 Antworten
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?
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. ^^
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:
Und überlege, ob DU nicht eher in diese Richtugn gehen willst.
Dazu kann ich gerade nicht viel sagen aber ich werde mir deine Denkanstöße ansehen, besten Dank. :)
Ich habe mittlerweile eine Lösung gefunden. Ansible bietet in der Tat einen Weg, es gibt einen Parameter der mir nicht bekannt war.
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 /
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.
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.