Forum: Administration, Konfiguration
Moderatoren: Herb, Martin ConradThema: /etc/shadow
Re: /etc/shadow
Patrick am 20.12.2010 um 08:37
Afaik geht getpwnam an die /etc/passwd.
Die Funktion getspnam geht aber definitiv an die /etc/shadow.
/*******************************************************************************
* Validiert Benutzername/Kennwort gegen /etc/shadow
*
* @param char* Benutzername
* @param char* Kennwort
* @return int 1=OK, 0=Fehler
*******************************************************************************/
inline
static
int
authenticate ( const char *name,
const char *passwd )
{
struct spwd *shadow;
char *hash;
if (NULL == name
|| NULL == passwd)
return 0;
// http://www.gnu.org/s/libc/manual/html_node/crypt.html
if (NULL == (shadow=getspnam(name))
|| NULL == shadow->sp_namp
|| NULL == shadow->sp_pwdp)
return 0;
return (NULL == (hash=crypt(passwd, shadow->sp_pwdp))
|| strlen(shadow->sp_pwdp) != strlen(hash)
|| 0 != strncmp(shadow->sp_pwdp, hash, strlen(hash)))
? 0
: 1;
}
Eine Lösung in C wollte ich gerne vermeiden, weil die Lösung auf unterschiedlichen Systemen zum Einsatz kommen wird ich nicht auf jedem System kompilieren kann. Der Aufwand ist mir zu hoch, eine entsprechende Entwicklungsumgebung zu erstellen
Trotzdem - danke sehr
@Philip
Mit chage -l kann ich arbeiten, vielen Danke!
--
To follow the path: look to the master, follow the master, walk with the master, see through the master, become the master.
Re: /etc/shadow
Martin Conrad (webmaster) am 20.12.2010 um 10:08
Zitat:
@Martin
Afaik geht getpwnam an die /etc/passwd.
Die Funktion getspnam geht aber definitiv an die /etc/shadow.
Nicht ganz. getpwnam ist POSIX und daher kompatibel. Unter Linux kannst sein, dass die an /etc/passwd geht - hab grad keines hier zur Hand.
getspwnam ist kein Standard. Das wird wohl an shadow gehen, wie du schon schrobst.
Egal, du hast ja was gefunden.
Bis denne
Martin
--
0xC0FFEE
