ingobar: Was ist der Unterschied zwischen su und sudo

Hallo,

im Zusammenhang mit Änderungen an der php.ini Datei unter OSX bin auf Missverständnis meinerseits gestoßen, das mir arge Kopfzerbrechen bereitet.

Was ist der Unterschied zwischen su und sudo.

Folgendes Problem hatte ich: Mit dem Aufruf "su pico php.ini" wollte ich die Datei ändern. Allerdings hat er mein Admin-Passwort nicht genommen. Mit dem Aufruf "sudo pico php.ini" hat er das gleiche Passwort aber genommen. Warum?

  1. hi,

    Was ist der Unterschied zwischen su und sudo.

    su: switch user (default root)
    sudo: execute a command as another user
    man sudo...

    --roro

    1. Aha, ich dachte su steht für substitute user. Andere sagen "super user"

      su: switch user (default root)
      sudo: execute a command as another user

      Erklärt irgendwie nicht mein Problem. Ich konnte mich nämlich nicht als su unter OSX einloggen. Als sudo ging es und mit sudo su war ich dann sogar root.

      Wo ist denn da der Zusammenhang?

  2. Hallo ingobar,

    Was ist der Unterschied zwischen su und sudo.

    War das eine Frage.

    Folgendes Problem hatte ich: Mit dem Aufruf "su pico php.ini" wollte ich die Datei ändern. Allerdings hat er mein Admin-Passwort nicht genommen. Mit dem Aufruf "sudo pico php.ini" hat er das gleiche Passwort aber genommen. Warum?

    man su:   su [-] [username [ args ]]
    man sudo: sudo [-HPSb] [-a auth_type] [-c class│-] [-p prompt] [-u username│#uid] {-e file [...] │ -i │ -s │ command}

    Jetzt überleg mal, was bei deinen beiden Aufrufen oben passiert. (SELF ;) ). Wenn dir nix auffällt lies weiter:

    su foobar versucht, dich mit Benutzername 'foobar' anzumelden.
    sudo foobar meldet dich als root an und führt foobar aus.

    su heißt eigentlich 'substitute user', wird aber oft als 'super user' interpretiert. 'switch user' heißt es auf jeden Fall nicht.

    Viele Grüße aus Freiburg,
    Marian

    --
    Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
    <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
  3. Tach,

    Folgendes Problem hatte ich: Mit dem Aufruf "su pico php.ini" wollte ich die Datei ändern. Allerdings hat er mein Admin-Passwort nicht genommen. Mit dem Aufruf "sudo pico php.ini" hat er das gleiche Passwort aber genommen. Warum?

    su verlangt das Passwort des Users, als der du dich anmelden willst (außer du bist bereits root) und sudo will das Paßwort des aktuellen Users.

    mfg
    Woodfighter

    1. Hallo Jens,

      su verlangt das Passwort des Users, als der du dich anmelden willst (außer du bist bereits root) und sudo will das Paßwort des aktuellen Users.

      Das ist nur die Standardkonfiguration von sudo, aber nicht der entscheidende Unterschied zwischen den beiden Kommandos.

      Schöne Grüße,

      Johannes

      1. Hallo Johannes,

        Das ist nur die Standardkonfiguration von sudo, aber nicht der entscheidende Unterschied zwischen den beiden Kommandos.

        Aber der Grund für den Fehler.

        Viele Grüße aus Freiburg,
        Marian

        --
        Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
        <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
        1. Hallo Marian,

          Das ist nur die Standardkonfiguration von sudo, aber nicht der entscheidende Unterschied zwischen den beiden Kommandos.

          Aber der Grund für den Fehler.

          Nein der Fehler war, dass er versucht hatte
              su pico php.ini
          aufzurufen. (Ich gehe einfach mal davon aus, dass es auf seinem System keinen Benutzer pico gibt. Und selbst wenn, würde er damit das Kommandon php.ini als Benutzer pico ausführen, was wohl nicht das ist, was er erreichen wollte.)

          Ihr beide habt aber insofern Recht, dass er sich mit su und seinem »Administratorkennwort« nicht als root hätte einloggen können. Der Administrator-Benutzer ist unter Mac OS X nämlich nicht identisch mit root und ein Login als root mit Passwort ist per Default aktiviert.

          Da sudo aber in der Standardkonfiguration nur nach dem Passwort des Benutzers fragt, der das Programm ausführt, kann man dadurch Kommandos als root ausführen. Wenn man sudo su eingibt, wird su also schon als root ausgeführt und fragt deswegen nicht nach dem Superuser-Passwort.

          Ich halte diese Konfiguration übrigens nicht für besonders sinnvoll. Wenn jemand als ein Benutzer, der sudo ausführen darf, Zugriff auf das System hat, muss man davon ausgehen, dass er auch das Passwort für dieses Benutzerkonto kennt. Es wäre sicherer, sudo so zu konfigurieren, dass es statt dessen nach dem root-Passwort fragt.

          Schöne Grüße,

          Johannes

    2. su verlangt das Passwort des Users, als der du dich anmelden willst (außer du bist bereits root) und sudo will das Paßwort des aktuellen Users.

      Das würde es natürlich erklären. Allerdings gibt es nur mich als User.

      Wieso kann ich mich eigentlich dann als "sudo su" als root anmelden?

      Ist das ganze vielleicht etwas OSX spezifisches?

      1. Tach,

        Wieso kann ich mich eigentlich dann als "sudo su" als root anmelden?
        Ist das ganze vielleicht etwas OSX spezifisches?

        nein, das ist etwas UNIX-spezifisches (OSX übernimmt das also in seiner Eigenschaft als UNIX), dort gibt es immer einen User mit der ID 0, der allgemein root oder superuser genannt wird, wenn du einen Blick in die Datei /etc/passwd wirfst, wirst du sehen, dass dein System noch zahlreiche weiter USer gibt, die für Systemaufgaben herhalten.

        mfg
        Woodfighter