summaryrefslogtreecommitdiffstats
path: root/usr.bin/chpass/edit.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1996-08-12 14:45:26 +0000
committerpeter <peter@FreeBSD.org>1996-08-12 14:45:26 +0000
commit6b18c72cfcfbbcb9ef4ef47dba3d309c3ad51740 (patch)
tree1527176a279bb4dc9a6e348a851ec74ee4f7e79b /usr.bin/chpass/edit.c
parent665b6e261ba076b16c6c02125a104c2297ae5a96 (diff)
downloadFreeBSD-src-6b18c72cfcfbbcb9ef4ef47dba3d309c3ad51740.zip
FreeBSD-src-6b18c72cfcfbbcb9ef4ef47dba3d309c3ad51740.tar.gz
Add new option to chpass: -e "expire" ; change the account expire time
from a script as if it was done in the interactive editor. When reassembling the gecos string, trim any excess trailing commas, they look ugly in the passwd file. :-) Have a simple Makefile tweak to prevent mortal users from changing their fullname. As ISP's we have seem some real bizzare stuff here.. When decoding the change/expire string, allow the month number as a synonym for the name of the month.. (ie: 1 as well as Jan or January) Note that using numbers means there's a chance that you can get bitten if you're not used to the American DD-MM-YY order.
Diffstat (limited to 'usr.bin/chpass/edit.c')
-rw-r--r--usr.bin/chpass/edit.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/usr.bin/chpass/edit.c b/usr.bin/chpass/edit.c
index bca6ace..cf87fdf 100644
--- a/usr.bin/chpass/edit.c
+++ b/usr.bin/chpass/edit.c
@@ -233,6 +233,9 @@ bad: (void)fclose(fp);
(void)sprintf(pw->pw_gecos = p, "%s,%s,%s,%s", list[E_NAME].save,
list[E_LOCATE].save, list[E_BPHONE].save, list[E_HPHONE].save);
+ while ((len = strlen(pw->pw_gecos)) && pw->pw_gecos[len - 1] == ',')
+ pw->pw_gecos[len - 1] = '\0';
+
if (snprintf(buf, sizeof(buf),
"%s:%s:%d:%d:%s:%ld:%ld:%s:%s:%s",
pw->pw_name, pw->pw_passwd, pw->pw_uid, pw->pw_gid, pw->pw_class,
OpenPOWER on IntegriCloud