Mpora
I did this about 3 years ago. However I think it could be the one for you
to look at.
Wire
> James the chkname.c file (see below) seems to be the one that checks
> for usernames. Is this the file you had to change?
>
> -------------------BEGIN CODE-----------------------
>
> /*
> * check_user_name(), check_group_name() - check the new user/group *
> name for validity; return value: 1 - OK, 0 - bad name
> */
>
> #include <config.h>
>
> #include "rcsid.h"
> RCSID("$Id: chkname.c,v 1.6 2002/01/10 13:04:34 kloczek Exp $")
>
> #include <ctype.h>
> #include "defines.h"
> #include "chkname.h"
>
> #if HAVE_UTMPX_H
> #include <utmpx.h>
> #else
> #include <utmp.h>
> #endif
>
> static int
> good_name(const char *name)
> {
> /*
> * User/group names must match [a-z_][a-z0-9_-]*
> */
> if (!*name || !((*name >= 'a' && *name <= 'z') || *name == '_'))
> return 0;
>
> while (*++name) {
> if (!((*name >= 'a' && *name <= 'z') ||
> (*name >= '0' && *name <= '9') ||
> *name == '_' || *name == '-' ||
> (*name == '$' && *(name+1) == NULL)))
> return 0;
> }
>
> return 1;
> }
>
> int
> check_user_name(const char *name)
> {
> #if HAVE_UTMPX_H
> struct utmpx ut;
> #else
> struct utmp ut;
> #endif
>
> /*
> * User names are limited by whatever utmp can
> * handle (usually max 8 characters).
> */
> if (strlen(name) > sizeof(ut.ut_user))
> return 0;
>
> return good_name(name);
> }
>
> int
> check_group_name(const char *name)
> {
> /*
> * Arbitrary limit for group names - max 16
> * characters (same as on HP-UX 10).
> */
> if (strlen(name) > 16)
> return 0;
>
> return good_name(name);
> }
>
> -----------END----------------
>
>
>
> ---------------------------------------------
> This service is hosted on the Infocom network
> http://www.infocom.co.ug
---------------------------------------------
This service is hosted on the Infocom network
http://www.infocom.co.ug