Anzeige:
Ergebnis 1 bis 2 von 2

Thema: getpwuid() - Problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    29.07.2001
    Ort
    Wien
    Beiträge
    90

    getpwuid() - Problem

    Hi!

    Ich habe ein Perl-Script, welches mir die nächste freie UID zurückliefert
    Code:
    while ( defined( getpwuid( $USER_ID ) ) )
      $USER_ID++;
    Das Skript funktioniert auch problemlos, allerdings nur als root. Gibt es irgendeine Möglichkeit das auch als Nicht-Root zu ermöglichen? (suid ist keine Lösung, /etc/passwd auch nicht, da ein Teil der User in LDAP steht)? Im Moment habe ich ein suid-C-Programm, welches mir den Eintrag zurückliefert, aber ständig dieses Programm exec'en (ok, das programm liefert schon die höchste id) ist auch nicht die Lösung.

    Nebenbei: Was ist eigentlich performanter? exec, system oder gar fork'en?
    Diese Message wurde erstellt mit freundlicher Unterstützung eines frei-
    laufenden Pinguins aus artgerechter Freilandhaltung. Er ist garantiert
    frei von Micro$oft'schen Viren.

  2. #2
    Registrierter Benutzer
    Registriert seit
    29.07.2001
    Ort
    Wien
    Beiträge
    90
    zur frage der performance von system und exec ein pfusch-benchmark:

    zum testen von exec:
    Code:
    for ( $i=0; $i<=2500; $i++ )
    {
      open( FOO, "-|" ) || exec "./testprog";
      close FOO;
    }
    liefert zurück:
    Code:
    real 0m20.091s
    user 0m8.680s
    sys 0m11.220s
    für system:
    Code:
    for ( $i=0; $i<=2500; $i++ )
    {
      system "./testprog";
    }
    liefert
    Code:
    real 0m18.540s
    user 0m7.880s
    sys 0m9.910s
    und als kleine Anmerkung: NIEMALS folgendes machen:

    Code:
    for ( $i=0; $i<=2500; $i++ )
    {
      open( FOO, "-|" ) || system "./testprog";
      close FOO;
    }
    weil dann startet das skript 2500 fork'ed testprog's, allerdings ohne fork extra aufzurufen. naja, so ganz hab ichs nicht kapiert, jedenfalls ist es sehr wahrscheinlich, dass der rechner dabei eingeht
    Diese Message wurde erstellt mit freundlicher Unterstützung eines frei-
    laufenden Pinguins aus artgerechter Freilandhaltung. Er ist garantiert
    frei von Micro$oft'schen Viren.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •