static void new_spent (struct spwd *spent) { if (lflg) spent->sp_namp = xstrdup (user_newname); if (fflg) { SYSLOG ((LOG_INFO, "change user `%s' inactive from `%ld' to `%ld'", spent->sp_namp, spent->sp_inact, user_inactive)); spent->sp_inact = user_inactive; } if (eflg) { /* XXX - dates might be better than numbers of days. --marekm */ SYSLOG ((LOG_INFO, "change user `%s' expiration from `%ld' to `%ld'", spent->sp_namp, spent->sp_expire, user_expire)); spent->sp_expire = user_expire; } spent->sp_pwdp = new_pw_passwd (spent->sp_pwdp, spent->sp_namp); }
static void new_pwent (struct passwd *pwent) { if (lflg) { SYSLOG ((LOG_INFO, "change user name `%s' to `%s'", pwent->pw_name, user_newname)); pwent->pw_name = xstrdup (user_newname); } #ifdef SHADOWPWD if (!is_shadow_pwd) #endif pwent->pw_passwd = new_pw_passwd (pwent->pw_passwd, pwent->pw_name); if (uflg) { SYSLOG ((LOG_INFO, "change user `%s' UID from `%d' to `%d'", pwent->pw_name, pwent->pw_uid, user_newid)); pwent->pw_uid = user_newid; } if (gflg) { SYSLOG ((LOG_INFO, "change user `%s' GID from `%d' to `%d'", pwent->pw_name, pwent->pw_gid, user_newgid)); pwent->pw_gid = user_newgid; } if (cflg) pwent->pw_gecos = user_comment; if (dflg) { SYSLOG ((LOG_INFO, "change user `%s' home from `%s' to `%s'", pwent->pw_name, pwent->pw_dir, user_newhome)); pwent->pw_dir = user_newhome; } if (sflg) { SYSLOG ((LOG_INFO, "change user `%s' shell from `%s' to `%s'", pwent->pw_name, pwent->pw_shell, user_shell)); pwent->pw_shell = user_shell; } }
/* * new_spent - initialize the values in a shadow password file entry * * new_spent() takes all of the values that have been entered and fills * in a (struct spwd) with them. */ static void new_spent (struct spwd *spent) { if (lflg) spent->sp_namp = xstrdup (user_newname); if (fflg) { #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "changing inactive days", user_newname, user_newid, 1); SYSLOG ((LOG_INFO, "change user `%s' inactive from `%ld' to `%ld'", spent->sp_namp, spent->sp_inact, user_newinactive)); spent->sp_inact = user_newinactive; #else SYSLOG ((LOG_INFO, "change user `%s' inactive from `%ld' to `%ld'", spent->sp_namp, spent->sp_inact, user_inactive)); spent->sp_inact = user_inactive; #endif } if (eflg) { /* XXX - dates might be better than numbers of days. --marekm */ #ifdef WITH_AUDIT if (audit_fd >= 0) { time_t exp_t; struct tm *exp_tm; char new_exp[16], old_exp[16]; if (user_newexpire == -1) new_exp[0] = '\0'; else { exp_t = user_newexpire * DAY; exp_tm = gmtime (&exp_t); #ifdef HAVE_STRFTIME strftime (new_exp, sizeof (new_exp), "%Y-%m-%d", exp_tm); #else memset (new_exp, 0, sizeof (new_exp)); snprintf (new_exp, sizeof (new_exp) - 1, "%04i-%02i-%02i", exp_tm->tm_year + 1900, exp_tm->tm_mon + 1, exp_tm->tm_mday); #endif } if (user_expire == -1) old_exp[0] = '\0'; else { exp_t = user_expire * DAY; exp_tm = gmtime (&exp_t); #ifdef HAVE_STRFTIME strftime (old_exp, sizeof (old_exp), "%Y-%m-%d", exp_tm); #else memset (old_exp, 0, sizeof (old_exp)); snprintf (old_exp, sizeof (old_exp) - 1, "%04i-%02i-%02i", exp_tm->tm_year + 1900, exp_tm->tm_mon + 1, exp_tm->tm_mday); #endif } audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "changing expiration date", user_newname, user_newid, 1); } SYSLOG ((LOG_INFO, "change user `%s' expiration from `%ld' to `%ld'", spent->sp_namp, spent->sp_expire, user_newexpire)); spent->sp_expire = user_newexpire; #else SYSLOG ((LOG_INFO, "change user `%s' expiration from `%ld' to `%ld'", spent->sp_namp, spent->sp_expire, user_expire)); spent->sp_expire = user_expire; #endif } spent->sp_pwdp = new_pw_passwd (spent->sp_pwdp, spent->sp_namp); if (pflg) spent->sp_lstchg = time ((time_t *) 0) / SCALE; }
/* * new_pwent - initialize the values in a password file entry * * new_pwent() takes all of the values that have been entered and fills * in a (struct passwd) with them. */ static void new_pwent (struct passwd *pwent) { if (lflg) { #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "changing name", user_newname, user_newid, 1); #endif SYSLOG ((LOG_INFO, "change user name `%s' to `%s'", pwent->pw_name, user_newname)); pwent->pw_name = xstrdup (user_newname); } if (!is_shadow_pwd) pwent->pw_passwd = new_pw_passwd (pwent->pw_passwd, pwent->pw_name); if (uflg) { #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "changing uid", user_newname, user_newid, 1); #endif SYSLOG ((LOG_INFO, "change user `%s' UID from `%d' to `%d'", pwent->pw_name, pwent->pw_uid, user_newid)); pwent->pw_uid = user_newid; } if (gflg) { #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "changing primary group", user_newname, user_newid, 1); #endif SYSLOG ((LOG_INFO, "change user `%s' GID from `%d' to `%d'", pwent->pw_name, pwent->pw_gid, user_newgid)); pwent->pw_gid = user_newgid; } if (cflg) { #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "changing comment", user_newname, user_newid, 1); pwent->pw_gecos = user_newcomment; #else pwent->pw_gecos = user_comment; #endif } if (dflg) { #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "changing home directory", user_newname, user_newid, 1); #endif SYSLOG ((LOG_INFO, "change user `%s' home from `%s' to `%s'", pwent->pw_name, pwent->pw_dir, user_newhome)); pwent->pw_dir = user_newhome; } if (sflg) { #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "changing user shell", user_newname, user_newid, 1); SYSLOG ((LOG_INFO, "change user `%s' shell from `%s' to `%s'", pwent->pw_name, pwent->pw_shell, user_newshell)); pwent->pw_shell = user_newshell; #else SYSLOG ((LOG_INFO, "change user `%s' shell from `%s' to `%s'", pwent->pw_name, pwent->pw_shell, user_shell)); pwent->pw_shell = user_shell; #endif } }