2012-04-05 5 views
1

Gibt es eine C-API für die Validierung des Benutzernamens?Überprüfen Sie den Benutzernamen in Unix/Solaris

Ich nehme die Eingabe von user_name, die zu diesem Zeitpunkt möglicherweise nicht vorhanden ist. Da der Benutzername den POSIX-Regeln folgen muss, gibt es eine C-API, die die Validierung durchführen kann?

+1

Siehe auch die folgende Frage: http://stackoverflow.com/ Fragen/6949667/Was-sind-die-echte-Regeln-für-Linux-Benutzernamen-on-Centos-6-und-Rhel-6 –

Antwort

1

Ich vermute, dass Sie versuchen herauszufinden, ob auf dem System, auf dem Sie arbeiten, ein Benutzername existiert. Dafür suchen Sie nach getwpent()/getpwnam() - überprüfen Sie die Handbuchseite für Details.

Obwohl diese mehr Informationen zurückgeben, als Sie möchten, wird getpwnam() Ihnen (leicht) auch sagen, ob es einen Kennwortdateieintrag gibt oder nicht, der einem gegebenen Benutzernamen entspricht.

(Wenn Sie einfach suchen einen Benutzernamen, um sicherzustellen, nur gültige Zeichen enthält, so stellen Sie sicher, dass es nur enthält [A-Za-z0-9_]+)

+0

Der Benutzername sollte wahrscheinlich nicht rein numerisch sein; zumindest kann man Verwirrung erwarten, wenn der Benutzername wie eine Zahl aussieht (doppelt so, wenn die UID nicht die gleiche Nummer wie der Name ist - ja, Sie können es tun; nein, Sie sollten es nicht tun!). –

+0

Ja, das stimmt. Ich nehme an, die richtige Regexp ist [A-Za-z _] [A-Za-z_0-9] * – Perry