Passwort



  • Abend

    Ich bin erst relativ neu in der Linux Programmierung und möchte folgendes realisieren:

    system("su");
    --> fragt mich nach der Eingabe des root Passwortes, wie kann ich die Eingabe umgehen, also wenn mein pw 123 ist, dass man dann system(su 123") oder so ähnlich aufrufen könnte?
    Also die Anwendung soll das root Passwort selber eingeben.

    mfg





  • Der wiki Artikel sagt mir leider nicht viel...
    das terminal kennt den Befel setuid auch nicht...



  • selber eingeben geht nicht. dafür gibt es das schon erwähnte setuid.

    setuid ist eine der dateieigentschaften des unix-rechtesystems. setzen geht so:

    chmod +s /pfad/zur/ausführenbaren/datei

    dann wird die datei mit den rechten des besitzers der datei ausgeführt. also wenn sie dem root gehört und du sie als normaler nutzer ausführt, läuft sie trotzdem mit root-rechten. andersherum geht das selbstverständlich auch. dummy-user, der fast keine rechte hat, ist eigentümer und du führst die datei aus, dann läuft sie mit dessen rechten.
    für eine rechtegruppe kann man das mit +g machen.

    :xmas2:



  • Eine andere Möglichkeit:

    /etc/sudoers:
    <users> ALL=NOPASSWD: ALL

    sudo shutdown
    -....-- frag nicht nach pw



  • fooblablubb schrieb:

    Eine andere Möglichkeit:
    /etc/sudoers:
    <users> ALL=NOPASSWD: ALL
    sudo shutdown
    -....-- frag nicht nach pw

    Das ist die Windows-Art: Einfach alle Users zum root machen.

    Ich wuerde vorschlagen eine neue Gruppe anzulegen, admin

    chown root:root /pfad/zum/programm/programm
    
    /etc/sudoers:
    %admin ALL=(root) NOPASSWD:/pfad/zum/programm/programm
    

    So koennen alle Users in der Gruppe admin das Programm mit root-Rechten ohne Passw-Eingabe ausfuehren.



  • DEvent schrieb:

    fooblablubb schrieb:

    <users> ALL=NOPASSWD: ALL

    Das ist die Windows-Art: Einfach alle Users zum root machen.
    ...

    Dein Vorschlag ist nicht schlecht aber das "s", also Mehrzahl ist unbeabsichtigt. Man kann da auch einfach _einen_ User eintragen. Dürfte am einfachsten sein.


Anmelden zum Antworten