Beispiel #1
0
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);
}
Beispiel #2
0
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;
	}
}
Beispiel #3
0
/*
 * 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;
}
Beispiel #4
0
/*
 * 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
	}
}