Christoph Zurnieden: User wechseln ("su")

Beitrag lesen

Hallo zusammen,

Ist dieser Mechanismus aus Sicherheitsgruenden fuer Skripte abgeschaltet,
kann man sich eines kleinen binary's bedienen, dass das Skript mit der richtigen Berechtigung aufruft.

Es hat schon seinen Grund, warum sowas ausgeschaltet ist ;-)

Trotzdem hier das oben angesprochen Binarie, nein die Quellen zum Selberbauen, sollte überall kompilieren.
Das Programm führt das einkompilierte Programm (Nein, nur der Name nebst Pfad wird natürlich fest einkompiliert ;-) mit der UID aus, die es selber hat.

#include <stdio.h>
#include <stdlib.h>

#define PROGPATH "/usr/bin/perl"

#define PROGNAME "/path/to/progname"

int main(){
          execl(PROGPATH, PROGNAME, NULL);
}

Siehe auch man execl für weiter Informationen.
Es sollten die Pfade schon fest einkompiliert bleiben, evt kann über argv[] noch Argumentenübergabe praktiziert werden.

Wenn noch Fragen sind ... ;-)

so short

CZ