prozess unter anderem user ausführen

Dieses Thema im Forum "C/C++" wurde erstellt von heck, 12.01.2007.

  1. heck

    heck Grünschnabel

    Dabei seit:
    09.01.2007
    Beiträge:
    7
    Zustimmungen:
    0
    Hello,

    Ich baue ein programm welches andere programme starten/beenden kann.
    Ein general puropose launcher.

    Nun brauche ich die möglichkeit ein programm unter einem anderen user ausführen zu können.
    Kann man mitten im prozess den user wechseln? oder muss ich eine art ein parametriesierter fork() oder exec() ausführen (sufork(), su exec() ???).

    Vielen Dank für eure Hilfe!!
    HEck
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 theton, 12.01.2007
    Zuletzt bearbeitet: 12.01.2007
    theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    man 2 setuid
    bsp:
    Code:
    ....
    setuid(0); // UID auf root setzen
    ....
    setuid(getuid()); // zuruecksetzen
    
    Wichtig: Das SUID-Flag muss für das Programm gesetzt sein und ich hoffe, du weisst was du dort tust (wahrscheinlich eher nicht, sonst müsstest du nicht fragen). Gerade Anfänger bauen so gern Sicherheitslücken ein.
     
  4. #3 heck, 12.01.2007
    Zuletzt bearbeitet: 12.01.2007
    heck

    heck Grünschnabel

    Dabei seit:
    09.01.2007
    Beiträge:
    7
    Zustimmungen:
    0
    jez schiists mi dänn ahh

    Nein ehrlich, langsam hab ich die schnauze echt voll von all diesen blöden boarden und foren.
    Wer nicht fragt bleibt dumm, deshalb frage ich gerne auch wenn ich beileibe mit 8 Jahren C++ programmierpraxis und 6 Jahren Linux / UNIX erfahrung kein "anfänger" mehr bin.

    zum poster oben:
    Du hast wohl nicht meine 4 posts gegen deine 4000 verglichen und gelesen Heck (grünschnabel). ahh alles klar. ein anfänger....
    nein echt.

    Und das ist nicht was ich will. Ich will den User wechseln so mit einem syscall vermutlich, so richtig ohne setuid bit und krimskrams.
    Danke...
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    sorry, aber das nervt micht echt. oder muss ich von 100 worten 95 aus dem fachchinesisch benützen, so das das einfache problem dreifach so hoch klingt und keiner mehr den wald vor lauter bäumen mehr sieht (Ja, den wald vor lauter bäumen). Das ist bull*h*t.
    Dafür wird man als als anfänger gestempelt, wenn eine vereinfachte ausdrucksweise bevorzugt und noch nie ein su (für alle anfänger: su - substitute user) (under solaris) programmiert hat...
    Ich bin immer vorsichtig jemandem so ans bein zu pinkeln.
     
  5. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Genau das macht setuid() doch. Der Programmcode zwischen 'setuid(0);' und 'setuid(getuid());' läuft dann in diesem Beispiel als root. Trotzdem ist ein SUID-Flag notwendig, da das Programm sonst seine UID nicht ändern darf. Gibt nunmal gewisse Sicherheitsmechanismen in Linux/Unix mit denen man sich als Programmierer abfinden muss. Wenn du soviel Erfahrung hast, solltest du das eigentlich wissen. Im übrigen ist mir dein Postcount egal, würde es sogar gern sehen, wenn die einfach ausgeblendet würden, wie es z.B. im HaBo üblich ist, da ich mittlerweile schon per PM von anderen Usern gefragt werde, wenn diese ein Problem haben, was auf Dauer ziemlich nervig ist. Ich habe dich als Anfänger gesehen, da jemand, der so viel Erfahrung hat, eigentlich wissen sollte, dass er mit
    Code:
    man -k uid | grep "(2)"
    eine Liste der möglichen Systemaufrufe bekommt.
    Also nochmal zum Mitschreiben:
    Code:
    <sonstiger Code>
    
    setuid(0); // UID auf root ändern
    
    <Code der mit root-Rechten laufen soll/muss>
    
    setuid(getuid()); // UID auf den Owner des Programms zurücksetzen
    
    <sonstiger Code>
    
     
  6. heck

    heck Grünschnabel

    Dabei seit:
    09.01.2007
    Beiträge:
    7
    Zustimmungen:
    0
    Aber es ist mir jetzt auch egal. Ich weiss was isch weiss und du hast anscheinend vergessen was du nicht weisst.
    unglaublich der herr theton, aber was solls...

    Nein, habe ich nicht gewusst!!! ich habe für diesen zweck bis anhin apropos verwendet.
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Nunja, solange deine Frage jetzt beantwortet ist... :rolleyes:
     
  9. heck

    heck Grünschnabel

    Dabei seit:
    09.01.2007
    Beiträge:
    7
    Zustimmungen:
    0
    cool das du cool bleibst.
    sorry dass es mir den deckel gelupft hat. Muss galub ein wenig sicherheitskonzepte unter unix nachholen...
     
Thema: prozess unter anderem user ausführen
Besucher kamen mit folgenden Suchen
  1. prozess unter anderer uid ausführen

Die Seite wird geladen...

prozess unter anderem user ausführen - Ähnliche Themen

  1. Prozessoren sollen runtertakten

    Prozessoren sollen runtertakten: Hallo, liebes Forum. Ich habe mal eine Frage: Ich benutze Slamd64 mit dem Kernel 2.6.22.8-smp[1] und möchte, dass meine Prozessoren im...
  2. Prozessorlast verteilen unter Solaris 8

    Prozessorlast verteilen unter Solaris 8: Hallo Admins, ich habe gerade eine 16-Prozessor Maschine in den Fingern auf der ein seltsames Backup läuft. Folgender Sachverhalt: Die via...
  3. Prozessmanagement unter AIX 5.3

    Prozessmanagement unter AIX 5.3: Hallo zusammen, ich habe ein Problem unter AIX. Ich bentutze ein Shell-Skript ( ksh ) welches u.a. viele Datei und sqlplus Operationen...
  4. Prozesszeitmessung unter Windows

    Prozesszeitmessung unter Windows: Da sich hier oft Leute tummeln, die mit Windows zu tun haben: Weiss jemand, wie man unter Windows die Zeit, die ein Prozess benoetigt, misst?...
  5. Laufen Dual Intel-Prozessor unter SUSE 10.1 100%?

    Laufen Dual Intel-Prozessor unter SUSE 10.1 100%?: Hallo Bin angefragt worden, ob Suse mit einem Intel Prozessor D820 (dual) läuft. Beim goggeln habe ich festgestellt, dass es funktionieren...