/* CS697L Assignment 1 */ /* User Account Creation */ /* Martian A. Smyth */ /* 2/97 */ #define SSN "SSN.DAT" #define LIST_SUFFIX ".users.conf" #define PASSWD_SUFFIX ".passwd" #define BASE_HOME "/home/" #define DEFAULT_SHELL "/bin/csh" #define LOWEST_UID 500 typedef struct userinfo { char ssn[10]; char first[16]; char middle[16]; char last[16]; } USERINFO; typedef struct ssndata { char uid[9]; char ssn[10]; char name[33]; char expdate[12]; char extensions[51]; } SSNDATA; void stripnl(char *s); void process_user(char *input); USERINFO parse_input(char *input); int parse_fields(char **fields, char *input, char *delim, int max_fields); char *stripchars(char *s, const char *remove); SSNDATA find_ssn(char *ssn); SSNDATA parse_ssndata(char *input); struct passwd build_pwd(USERINFO info); char *generate_name(USERINFO info); char *generate_password(USERINFO info); uid_t generate_uid(); char *make_lower(char *s); char *cryptpass(char *passwd); void add_ssn(SSNDATA ssn);