#include "logindefs.h"
#include "ch-common.h"
+#include "pwdutils.h"
#ifdef HAVE_LIBSELINUX
# include <selinux/selinux.h>
{
FILE *fp = stdout;
fputs(USAGE_HEADER, fp);
- fprintf(fp, _(" %s [options] [<username>]\n"), program_invocation_short_name);
+ fprintf(fp, _(" %s [options] [<username>|<UID>]\n"), program_invocation_short_name);
fputs(USAGE_SEPARATOR, fp);
fputs(_("Change your finger information.\n"), fp);
/* done parsing arguments. check for a username. */
if (optind < argc) {
if (optind + 1 < argc) {
- warnx(_("cannot handle multiple usernames"));
+ warnx(_("cannot handle multiple usernames or UIDs"));
errtryhelp(EXIT_FAILURE);
}
ctl->username = argv[optind];
if (!ctl.pw)
errx(EXIT_FAILURE, _("you (user %d) don't exist."),
uid);
- ctl.username = ctl.pw->pw_name;
} else {
- ctl.pw = getpwnam(ctl.username);
+ ctl.pw = ul_getuserpw_str(ctl.username);
if (!ctl.pw)
errx(EXIT_FAILURE, _("user \"%s\" does not exist."),
ctl.username);
}
+ ctl.username = ctl.pw->pw_name;
parse_passwd(&ctl);
#ifndef HAVE_LIBUSER
if (!(is_local(ctl.username)))