Anzeige:
Ergebnis 1 bis 5 von 5

Thema: login daten prüfen!?

  1. #1
    Registrierter Benutzer
    Registriert seit
    31.05.2003
    Ort
    Kevelaer
    Beiträge
    22

    login daten prüfen!?

    Hi @ all
    Wie immer geht's um meinen pop3 server *ggg*
    Die Sache mit dem login habe ich bis jetzt immernoch nciht am laufen
    Was ich suche ist ne Funktion (ein freund meinte in der glibc gäbe es sowas!?) der ich einfach username/uid + klartext pw übergeben kann und das teil mir dann true oder false zurück gibt!? Gibt es so eine FUnktion, wenn ja wie heißt sie usw...
    AUßerdem brauch eich eine FUnktion mit der ich die shell überprüfen kann und alle Gruppen anzeigen lassen in der ein benutzer ist, aber da habe ich glaube ich schon was gefunden.
    MfG. Takt
    Ps: verwende C/C++

  2. #2
    Registrierter Benutzer
    Registriert seit
    20.07.2003
    Beiträge
    147
    hallo.

    `man -k pam` kamm evtl weiterhelfen.

    oder `man pam_start` ... weiteres dann unter "SEE ALSO"

    mfg

    c.

  3. #3
    Registrierter Benutzer
    Registriert seit
    31.05.2003
    Ort
    Kevelaer
    Beiträge
    22
    mhh, täusch eich mich oder gibt es pam nur für linux und bsd?
    Will das programm eigentlich "portierbar" haltenf ür andere unices.
    Mitlerweile bin ich mit hilfe von pwd.h soweit, dass ich prüfen kann, ob der beutzer überhaupt in /etc/passwd existiert, ich wüsste auch, wie ich mit crypt() das pw aus der /etc/passwd vergleichen kann, nur leider setzt man ja "neuerdings" auf /etc/shadow, und da habe ich noch keine Lösung für gefunden.
    MfG. Takt

  4. #4
    Registrierter Benutzer
    Registriert seit
    05.09.2002
    Ort
    Neuhausen
    Beiträge
    320
    Sehe ich das richtig, dass du für einen Server (pop3) auf die Login-Mechanismen des Systems zugreiffen willst, um damit die gleichen Daten (Username/Password) für das System wie auch für den Server zu verwenden?

    Wenn ja, dann wirst du wie sagi angedeutet hat auf PAM zurückgreiffen müssen. Die Lösung mit dem simplen Vergleich von String mit den passwd-files ist nicht sauber und nicht flexibel. Mit PAM sollte es AFAIK auch eine Möglichkeit geben, transparent auf andere Loginmechanismen als lokale Benutzerkonten zuzugreifen (LDAP etc.).

    Gruss, Andy

  5. #5
    Registrierter Benutzer
    Registriert seit
    31.05.2003
    Ort
    Kevelaer
    Beiträge
    22
    naja, habe jetzt eine Lösung gefunden, aber mit pam werd ich mich noch mal beschäftigen.
    Code:
    int checklogin(char user[], char pass[])
    {
      /* wir loeschen den Zeilenumbruch... */
      user[strlen(user)-2] = '\0';
      pass[strlen(pass)-2] = '\0';
      
      register struct spwd *pwd;
      pwd = getspnam(user);
      if(pwd == NULL)
      {
        return -1; //user not known
      }
      if(strcmp(crypt(pass, pwd->sp_pwdp), pwd->sp_pwdp))
      {
        return -1; //wrong pw..
      } 
      return 0; //login ok!
    }
    Die idee stammt aus dem qpopper src ist aber nix kopiert
    MfG. Takt

Lesezeichen

Berechtigungen

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