diff options
author | Peter Wemm <peter@FreeBSD.org> | 1996-08-12 14:45:26 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 1996-08-12 14:45:26 +0000 |
commit | 73ca041dfcdee40aae69e5de3412a1148126ec4e (patch) | |
tree | 7f390982242bddb86eda7b3f9ab11f97846f99d2 /chpass/edit.c | |
parent | db3019bee11d27de92f652ab0a832ed72f97a4c6 (diff) | |
download | pw-darwin-73ca041dfcdee40aae69e5de3412a1148126ec4e.tar.gz pw-darwin-73ca041dfcdee40aae69e5de3412a1148126ec4e.tar.zst pw-darwin-73ca041dfcdee40aae69e5de3412a1148126ec4e.zip |
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 'chpass/edit.c')
-rw-r--r-- | chpass/edit.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/chpass/edit.c b/chpass/edit.c index bca6ace..cf87fdf 100644 --- a/chpass/edit.c +++ b/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, |