I did a number of things here:
the *add, *mod, and *del utilities, as well as id recieved substantial
changes, probably what you'd call a rewrite. This was of course using
clap-rs. These should all be very stable at this point (except
unimplemented features in usermod, grr)
getty, passwd, and su are simply ported, using clap for arg parsing. I
didn't change any of the logic, just swapped ArgParser for clap.
Fixed a bug with passwd and unset passwords
I'll open issues about the ones I didn't mention.
Here I've implemented the remainder of the core user utilities present
on most unix systems. They aren't particularly pretty, but they do work
for the most part.
Note that for some reason attempting to move the home directory of a
user via usermod -m does not work.
Also removing user's that have been deleted from groups is not yet
implemented, nor is updating /etc/passwd when a group id is changed.
Note that redox_users as used by Cargo.lock as of this commit is broken,
and may not work properly. If redox-os/users#11 is merged, cargo update
should fix.
All the utilities use the new API I defined in mu recent PR to
redox_users. `su`'s behavior was also fixed.
I also updated Cargo.toml (removing unused deps). This may require
another commit after my first PR is merged in order to appropriately
update Cargo.lock and make sure everything builds.