seeseekey.net - Invictus Deus Ex Machina

Unter Ubuntu gibt es in einer Stan­dard­in­stal­la­tion kei­nen akti­vier­ten „root“-Nutzer. Das bedeu­tet aller­dings nicht das der Nut­zer nicht vor­han­den ist. Statt­des­sen wird für den „root“-Nutzer ein­fach kein Pass­wort ver­ge­ben, was dazu führt das man ihn nicht nut­zen kann. Möchte man ihn doch nut­zen, so ver­gibt ein­fach ein Passwort:

sudo passwd root

Anschlie­ßend ver­fügt man über einen „root“-Nutzer und kann sich mit die­sem ein­log­gen. Möchte man das ganze wie­der rück­gän­gig machen, so muss die Datei „/etc/shadow“ bear­bei­tet wer­den. Dort wird der Hashwert des Nut­zers „root“ ein­fach durch ein Aus­ru­fe­zei­chen ersetzt. Danach ist der Nut­zer wie­der deak­ti­viert und kann nur mit­tels „sudo“ genutzt werden.

13 Kommentare

  1. Warum muss man sich denn als root einloggen? Der Benutzer ansich existiert ja immer. Wenn man eine root-Shell braucht, kann man dies auch mit

    > sudo su

    erreichen. Was man hingegen nicht machen sollte, ist das Bearbeiten von /etc/shadow. Das geht viel einfacher und sicherer über

    > sudo passwd -l root

    Antworten

  2. http://wiki.ubuntuusers.de/sudo sollte man sich mal zu gemühte führen.

    > sudo su
    ist problematisch, da es nicht alle Umgebungsvariablen setzt. und gerade bei Anfängern sorgen root-Account in Verbindung mit der “ich muss doch Administrator sein”-Windows Mentalität zu einer menge Problemen mit Rechten von Dateien und Ordnern bis hin zu zerschossenen Systemen.

    Eine Sicherheitstür bei Linux ist eben, dass einem Prozess nur die Rechte gibt, die es mind. benötigt. Root-Accounts (und alles als root starten) hebeln diesen Vorteil genauso auf, wie die “Tipps” einfach die Dateirechte auf 777 zu stellen.

    Antworten

  3. Eine Rootshell bekommt man unter Ubuntu mit sudo -i. Dann gilt auch:

    # echo $HOME
    /root

    Mit sudo -s wird einfach eine Shell gestartet, die mit root-Rechten läuft, aber immer noch mit dem eigenen Benutzer. Also:

    #echo $HOME
    /home/irgendwas

    Ich sehe wirklich keinen Grund, root unter Ubuntu zu aktivieren, wenn alle Funktionen auch out-of-the-box vorhanden sind.

    Antworten

  4. Danke für den Hinweis mit sudo. Ich war davon ausgegangen, dass bei su auch die Umgebungsvariablen angepasst werden. Ausprobiert habe ich es noch nie, da ich Arch nutze und mich dort auch als root einloggen kann.

    Antworten

  5. Wenn du unbedingt su verwenden willst und die Umgebungsvariablen brauchst, verwende einfach den guten, alten UNIX-Befehl.

    su –

    bzw.

    sudo su –

    Geht natürlich auch mit jedem anderen User (und in allen UNIX-artigen Betriebssytemen), z.B.:

    su – administrator

    um zum “administrator”-User zu wechseln und dessen .profile zu laden.

    Antworten

  6. Dass man einen root-account ohne Passwort nicht nutzen kann, stimmt leider nicht. Das fehlende PW bewirkt nur, dass man ohne Zutun in den Single-User-Mode booten kann (von GRUB aus), um dann eine allmächtige root-shell zu erhalten. Ich versteh bis heute nicht, was sich Canonical bei dieser klaffenden Sicherheitslücke/Feature gedacht hat….

    Antworten

  7. Weil es egal ist. Wenn jemand physisch an deinen Rechner rankommt, hast du verloren bei unverschlüsselter Festplatte. Ein root-Passwort bringt nichts, das kann man von einem Live-System dann überschreiben.

    Antworten

    • Und was ist mit einem Server (siehe Text von “ruder”)? Es ist einfach Unsinn dem root-Account ein Passwort zu geben.

      Antworten

      • Wenn man einen Server nutzt, bei welchem man sich per Zertifikat anmeldet, hat man das Problem das man ein Passwort eingeben muss, wenn man Dinge mit “root” Rechten, ergo per sudo, bearbeiten will. Meldet man sich als root per Zertifikat an, benötigt man für die Sitzung keine Passwörter mehr.

        In diesem Fall stellt sich die Frage ob es sinnvoll ist mit einem unprivilegierten Nutzer zu arbeiten. Bei einem Server kann es durchaus Fälle geben in denen ein aktivierter root Account sinnvoll und nötig ist. Bei Desktopsystemen ist dies eher unwahrscheinlich.

        Antworten

        • Dazu muss man dem Root-Nutzer kein Passwort geben. Ich habe das in meinem anderen Kommentar beschrieben. Man braucht dem root-Nutzer kein Passwort geben, um ihn zu nutzen. Wenn man ihn auf einem Server nutzen will, nimmt man ein Zertifikat. Ich würde auch so weit gehen und sagen, dass man Passwort-Authentifizierung auf einem Server generell deaktivieren sollte.

          Antworten

  8. als ich vor Jahren nach dem root login fragte wurde ich geradezu gevierteilt, gerädert und verwunschen; Pech und Schwefel sollten über mich hereinströmen. Schade eigentlich, ich dachte jetzt geht hier der Rauch auch auf und du bekommst dein Fett weg. Ubuntuusers wird auch immer lahmer. “sudo passwd root” ist einer der ersten befehle die ich nach einer Neuinstallation ausführe, und die die mich dafür verwünschen, ich hatte niemals ein problem damit, auch auf allen meinen Servern ist das so.

    Antworten

  9. Ich muss auch noch mal meinen Senf dazu ablassen:

    1. root ist nicht “deaktiviert”. Das Konto hat bloss kein Passwort und man kann sich entspr. nicht per Passwort einloggen. Auf andere Arten kann man sich durchaus als root einloggen (bspw. per SSH mit key).
    2. Lokal nimmt man sudo -i oder sudo -sH.
    3. wenn du dich unbedingt per remote als root einloggen willst (bspw. für remote systembackups), dann hinterlege einen ssh-key und setze in der /etc/ssh/sshd_config den Wert für PermitRootLogin auf without-password
    3. Das entfernen eines Passwortes macht man nicht in dem man manuell der /etc/shadow manipuliert sondern mit passwd -l (siehe manpage).

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.