Commit Graph

55 Commits

Author SHA1 Message Date
Jeremy Soller f6b27be9d9 Update to new event 2018-05-20 11:08:13 -06:00
MggMuggins 1d6b67cd42 Implement Unimplemented; Bugs
Fix a CLI bug with groupadd

Implement everything that involves removing user from groups, mostly
in userdel and usermod.
2018-02-12 09:07:17 -06:00
MggMuggins 69838054ab Remove ArgParser dep, whoami
Remove Arg parsing from sudo, (maybe in prep to deprecate in favor of
rudo)

Port login to clap-rs

Remove ArgParser dep

Remove whoami in favor of a link to id, and implemented linking in id.
2018-02-10 12:09:10 -06:00
MggMuggins fba0c70ae2 Port to clap-rs
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.
2018-02-08 21:10:44 -06:00
MggMuggins d5e011a304 Implement usermod, groupmod, userdel, groupdel; Fix passwd and useradd
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.
2018-02-03 19:10:39 -06:00
MggMuggins cbb7f52381 Fix #26 2018-01-30 17:41:16 -06:00
MggMuggins bc0dc6488b Update Cargo.lock; Fix su 2018-01-29 20:44:08 -06:00
MggMuggins 5e53b4b161 Port to redox_users break-api
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.
2018-01-29 16:39:52 -06:00
Jeremy Soller 02759b4a5a Fix bug causing ctrl-d to log in any user with su
Document su's logic
Return error code of shell from su
2018-01-22 08:01:02 -07:00
Jose Narvaez 0e327d8124 Using new 'unwrap_or_exit' from libextra. 2017-12-15 18:31:25 +00:00
MggMuggins 0b8f40c234 Add additional flags to user and groupadd; Update Cargo files 2017-12-09 22:06:47 -06:00
Jose Narvaez fd81487760 Updated to new error types from redox_users and simplefied the inspection and downcasting of the error on login. 2017-12-01 23:16:14 +00:00
Jose Narvaez 13681c3442 Moved to new error hadling of . 2017-11-30 22:41:57 +00:00
MggMuggins d9d3635916 Implemented useradd; groupadd fix 2017-11-28 21:39:20 -06:00
MggMuggins 464b5c4aa5 Small fixes to better mesh with redox_users changes 2017-11-27 17:53:11 -06:00
MggMuggins 8fffeb1e57 Implemented groupadd, fix for passwd compile 2017-11-26 16:53:37 -06:00
Jose Narvaez 31d217b375 README and docs tweaks. 2017-11-08 23:23:00 +00:00
Jose Narvaez 0ed14bec6d Migrated to redox_users and some refactoring and docs.
Details

- Updated dependencies with `redox_users`.
- Migrated all user/group dependent functionality to calls to `redox_users`.
- Added top level documentation to the crate.
- Added a `spawn_shell` function to reuse a bit of code.
- `login`: Handled the case of an invalid login with "Login incorrect" (as in BSD).
- `passwd`: Refactored a bit and used `eprintln!` where possible.
- `su`: Refactored a bit and used `eprintln!` where possible.
- `sudo`: Refactored a bit to simplify logic also used `eprintln!` where possible.
- `whoami`: Refactored a bit and used `eprintln!/println!` where possible.
- Also added myself on the AUTHORS section :).
2017-11-08 22:49:00 +00:00
Jeremy Soller 28d097dbf3 Fix man pages 2017-10-14 08:49:19 -06:00
Andre Richter 2a6615d343 Fix unused extern crates 2017-08-31 11:36:30 +02:00
Jeremy Soller d811d8758c Update password read to new method 2017-08-02 21:09:36 -06:00
Jeremy Soller c05f37f653 Merge pull request #10 from goyox86/goyox86/login-improvements
Revisited `login`.
2017-07-27 11:26:23 -06:00
Jeremy Soller 7cdd6c7e18 Merge pull request #11 from goyox86/goyox86/revisiting-su
Revisited `su`.
2017-07-26 17:02:04 -06:00
Jose Narvaez 1aa558e205 Some improvements to login
- Added constants for standard file paths.
- Improved error reporting when opening the files.
- Used `Passwd::parse_file` instead of doing it manually.
- Removed all the calls to unwrap().
- Used `fail` to report errors and exit when possible.
2017-07-26 21:37:13 +01:00
Jose Narvaez 80e085e7f0 Revisiting passwd
- Replaced all `unwrap()` calls by `try()`.
- Replaced all `panic()` calls by `fail()`.
- Argument parsing is now all done by `ArgParser`.
- Used `Passwd::parse_file` where possible.
- This actually does not change the password, will be the next job.
2017-07-26 21:12:10 +01:00
Jose Narvaez b42b6dd835 Revisited su.
Details

- Moved cmd line args parsing to `ArgParser`.
- All the calls to `panic!` were replaced by calls to `fail`.
- Revisited synopsis in the docs.
- Using `try` where possible.
- Using `Passwd::parse_file` instead of doing it manually.
- Handled errors while parsing passwd file.
- Added some constants.
2017-07-26 20:41:05 +01:00
Jeremy Soller 83d77f8124 Use PTY in getty to provide line control for raw consoles and vesad 2017-07-24 20:58:30 -06:00
Jeremy Soller 4e2561ed75 Correctly exit when parent, not child 2017-07-20 20:37:40 -06:00
Jeremy Soller ad00ba9eae Merge pull request #9 from goyox86/goyox86/getty-improved
Some improvements to `getty`
2017-07-20 17:54:08 -06:00
Jose Narvaez d4de8c0b79 Some improvements to getty
- Improved error handling over all.
- Switched to argument parsing by `ArgParser`.
- Replaced panics by calls to `fail.
- Removed unwraps ignoring results of syscalls when clearing the screen
and flushing stdout.
- Added docs for 'noclear' option.
- The current implementation was receiving n arguments and was
considering only the last one as the TTY this new one checks that we
have at least one and always use the first one.
- Added constants for columns and lines.
- Daemon receiver a reference to stderr to setup error reporting inside
there.
2017-07-20 23:49:37 +01:00
Jose Narvaez 4a4c45a7a7 Some tweaks to the id docs and copy-pasta typos.
Details

- Added docs for the `-r` flag of `id` also reindented to 80 cols.
- Fixed a typo on `getty`.
2017-07-20 17:34:06 +01:00
Jose Narvaez ef5fdc82a0 Improved id and whoami.
Details

- New implementation of `id` inspired by BSD's one.
- Refactoring on `whoami`.
- Added few utility functions in `userutils` for getting processes user and group
real/effective ID and names.

Added docs do `getty`, `login`, `passwd`, `su`, and `sudo`.

Details

- The docs are from BSD's ones.
- Also added `ArgParser` to all of them and added a -h/--help flag
to all of them.
- This is the start of a revision of all of those commands.
2017-07-19 18:06:48 +01:00
Jose Narvaez 3a06dbbc8e Implemented whoami on top of system calls.
Details

- The current implementataion the `whoami` utility relies
on a env var to determine the user. With this change we get
the effective user id of the context and lookup that id on
/etc/passwd.
- Added the Redox `libextra` dependency as it has some goodies
for error handling. This will allow to make this crate upto date
with `coreutils` practices.
- Added a new small `arg_parser` crate that was extracted from
`coreutils` as is now commen between `coreutils` and here.
2017-07-16 17:47:18 +01:00
Jeremy Soller 3ca18917f8 Update to use sudo password 2017-04-06 21:05:46 -06:00
Jeremy Soller 1ee223f926 Better error messages for sudo 2017-02-27 15:34:35 -07:00
Jeremy Soller b1e0ae8722 Fix issue with variable not passed to daemon 2017-02-07 20:39:07 -07:00
Jeremy Soller 880c664a24 Better failure detection in getty 2017-02-07 20:38:21 -07:00
xTibor 63985a11ff Implement whoami 2017-01-16 00:19:24 +01:00
Jeremy Soller 2fdef17559 Use liner to get username 2017-01-12 19:12:59 -07:00
Jeremy Soller ccae9c0b0a Correctly set environment 2017-01-10 09:50:23 -07:00
Jeremy Soller 13ef8943df Fix UID, GROUPS setting 2017-01-10 09:46:02 -07:00
Jeremy Soller 4a7d61eb1c Set other environmental variables 2017-01-10 09:44:43 -07:00
Jeremy Soller 45cb3e8208 Add clear argument 2016-12-19 21:38:00 -07:00
Jeremy Soller 56da6a40b0 Manually enter/exit raw mode 2016-11-20 11:59:08 -07:00
Jeremy Soller 48938fa3fd Use clone instead of threading to daemonize 2016-11-10 20:09:15 -07:00
Jeremy Soller 30187e1c64 WIP passwd implementation 2016-11-08 11:54:10 -07:00
Jeremy Soller afac2a3ccc Reenable clear in getty 2016-10-24 14:21:21 -06:00
Jeremy Soller 46631df4f0 Use OsRng to get random data for seed 2016-10-24 14:07:55 -06:00
Jeremy Soller d32f2dc10e Correctly use salt 2016-10-24 13:12:58 -06:00
Jeremy Soller e0fe388ccf Switch to argon2: WIP 2016-10-24 12:22:13 -06:00