From 93b6791e293fdab0816d603b8f323cb987d8ae18 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 26 Jan 2021 12:52:03 -0700 Subject: [PATCH] Update redox_users --- Cargo.lock | 129 ++++++++++++++++++++++---------------------- Cargo.toml | 6 +-- src/bin/getty.rs | 2 +- src/bin/groupmod.rs | 2 +- src/bin/id.rs | 4 +- src/bin/login.rs | 2 +- src/bin/passwd.rs | 2 +- src/bin/su.rs | 2 +- src/bin/sudo.rs | 2 +- src/bin/useradd.rs | 2 +- src/bin/userdel.rs | 2 +- src/bin/usermod.rs | 2 +- src/lib.rs | 6 +-- 13 files changed, 83 insertions(+), 80 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1149ae19d0..215d47e59b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15,7 +15,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "arrayvec" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -23,19 +23,19 @@ name = "atty" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.74 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.82 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "autocfg" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "base64" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -45,27 +45,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "blake2b_simd" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "bytecount" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cfg-if" -version = "0.1.10" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "clap" -version = "2.33.1" +version = "2.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -84,17 +84,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "crossbeam-utils" -version = "0.7.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "either" -version = "1.5.3" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -104,20 +104,20 @@ source = "git+https://gitlab.redox-os.org/redox-os/libextra.git#0b50f3f2127fa62b [[package]] name = "getrandom" -version = "0.1.14" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.74 (registry+https://github.com/rust-lang/crates.io-index)", - "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.82 (registry+https://github.com/rust-lang/crates.io-index)", + "wasi 0.10.1+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "hermit-abi" -version = "0.1.15" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.74 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.82 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -125,7 +125,7 @@ name = "itertools" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -135,7 +135,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.74" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -148,44 +148,47 @@ name = "redox_liner" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytecount 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bytecount 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "termion 1.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "termion 1.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "redox_syscall" -version = "0.1.57" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "redox_termios" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "redox_users" -version = "0.3.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", - "rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rust-argon2 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rust-argon2" -version = "0.7.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2b_simd 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)", "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -195,13 +198,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "termion" -version = "1.5.5" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.74 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.82 (registry+https://github.com/rust-lang/crates.io-index)", "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_termios 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -221,13 +224,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "userutils" version = "0.1.0" dependencies = [ - "clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)", + "clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)", "extra 0.1.0 (git+https://gitlab.redox-os.org/redox-os/libextra.git)", "redox_liner 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "termion 1.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_termios 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_users 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "termion 1.5.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -237,7 +240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +version = "0.10.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -262,36 +265,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" -"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" +"checksum arrayvec 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" -"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" +"checksum autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +"checksum base64 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -"checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" -"checksum bytecount 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b0017894339f586ccb943b01b9555de56770c11cda818e7e3d8bd93f4ed7f46e" -"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -"checksum clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" +"checksum blake2b_simd 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +"checksum bytecount 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72feb31ffc86498dacdbd0fcebb56138e7177a8cc5cea4516031d15ae85a742e" +"checksum cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +"checksum clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)" = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" "checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" -"checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" +"checksum crossbeam-utils 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" +"checksum either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" "checksum extra 0.1.0 (git+https://gitlab.redox-os.org/redox-os/libextra.git)" = "" -"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" -"checksum hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" +"checksum getrandom 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" +"checksum hermit-abi 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" "checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -"checksum libc 0.2.74 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10" +"checksum libc 0.2.82 (registry+https://github.com/rust-lang/crates.io-index)" = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929" "checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" "checksum redox_liner 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f014f6b014591f45bdd86377ab2f01b840ddd9e33421222b84d06e244b111327" -"checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" -"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" -"checksum rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" +"checksum redox_syscall 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570" +"checksum redox_termios 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f" +"checksum redox_users 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" +"checksum rust-argon2 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -"checksum termion 1.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905" +"checksum termion 1.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e" "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" "checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" "checksum vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" -"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +"checksum wasi 0.10.1+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9" "checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/Cargo.toml b/Cargo.toml index d3e84904a7..88492ac252 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,10 +54,10 @@ path = "src/bin/usermod.rs" clap = "2.33.0" extra = { git = "https://gitlab.redox-os.org/redox-os/libextra.git" } redox_liner = "0.5.1" -redox_syscall = "0.1.56" +redox_syscall = "0.2.4" redox_termios = "0.1.1" -redox_users = "0.3.1" -termion = "1.5.3" +redox_users = "0.4.0" +termion = "1.5.6" [profile.release] lto = true diff --git a/src/bin/getty.rs b/src/bin/getty.rs index e70f5c33c1..0f4be255dd 100644 --- a/src/bin/getty.rs +++ b/src/bin/getty.rs @@ -197,7 +197,7 @@ pub fn main() { Err(err) => fail(&format!("getty: failed to open TTY {}: {}", tty, err), &mut stderr), }; - match unsafe { syscall::clone(0) } { + match unsafe { syscall::clone(syscall::CloneFlags::empty()) } { Ok(0) => daemon(tty_fd as RawFd, clear, &mut stderr), Ok(_) => (), Err(err) => fail(&format!("getty: failed to fork login: {}", err), &mut stderr) diff --git a/src/bin/groupmod.rs b/src/bin/groupmod.rs index 5967923071..ae6be82312 100644 --- a/src/bin/groupmod.rs +++ b/src/bin/groupmod.rs @@ -63,7 +63,7 @@ fn main() { if let Some(gid) = args.value_of("GID") { let gid = gid.parse::().unwrap_or_exit(1); // Update users - let mut sys_users = AllUsers::new(Config::default()).unwrap_or_exit(1); + let mut sys_users = AllUsers::authenticator(Config::default()).unwrap_or_exit(1); for user in sys_users.iter_mut() { if user.gid == group.gid { user.gid = gid; diff --git a/src/bin/id.rs b/src/bin/id.rs index 5f389d5b0c..c6de0e685f 100644 --- a/src/bin/id.rs +++ b/src/bin/id.rs @@ -92,7 +92,7 @@ pub fn main() { get_euid() }.unwrap_or_exit(1); - let users = AllUsers::new(Config::default()).unwrap_or_exit(1); + let users = AllUsers::basic(Config::default()).unwrap_or_exit(1); let user = users.get_by_id(uid).unwrap_or_exit(1); println!("{}", user.user); @@ -151,7 +151,7 @@ pub fn main() { let euid = get_euid().unwrap_or_exit(1); let egid = get_egid().unwrap_or_exit(1); - let users = AllUsers::new(Config::default()).unwrap_or_exit(1); + let users = AllUsers::basic(Config::default()).unwrap_or_exit(1); let groups = AllGroups::new(Config::default()).unwrap_or_exit(1); let user = users.get_by_id(euid).unwrap_or_exit(1); diff --git a/src/bin/login.rs b/src/bin/login.rs index b18cf0b8bf..ba206a8216 100644 --- a/src/bin/login.rs +++ b/src/bin/login.rs @@ -63,7 +63,7 @@ pub fn main() { if !user.is_empty() { let stdin = io::stdin(); let mut stdin = stdin.lock(); - let sys_users = AllUsers::new(Config::with_auth()).unwrap_or_exit(1); + let sys_users = AllUsers::authenticator(Config::default()).unwrap_or_exit(1); match sys_users.get_by_name(user) { None => { diff --git a/src/bin/passwd.rs b/src/bin/passwd.rs index ebeeea7305..68102d9d97 100644 --- a/src/bin/passwd.rs +++ b/src/bin/passwd.rs @@ -55,7 +55,7 @@ fn main() { ).get_matches(); let uid = get_uid().unwrap_or_exit(1); - let mut users = AllUsers::new(Config::with_auth()).unwrap_or_exit(1); + let mut users = AllUsers::authenticator(Config::default()).unwrap_or_exit(1); { let user = match args.value_of("LOGIN") { diff --git a/src/bin/su.rs b/src/bin/su.rs index 5595437ebd..0dec35461c 100644 --- a/src/bin/su.rs +++ b/src/bin/su.rs @@ -54,7 +54,7 @@ pub fn main() { let uid = get_uid().unwrap_or_exit(1); - let users = AllUsers::new(Config::with_auth()).unwrap_or_exit(1); + let users = AllUsers::authenticator(Config::default()).unwrap_or_exit(1); let user = users.get_by_name(&target_user).unwrap_or_exit(1); // If the user executing su is root, then they can do anything without a password. diff --git a/src/bin/sudo.rs b/src/bin/sudo.rs index 1bfd2f09d7..8264a207a6 100644 --- a/src/bin/sudo.rs +++ b/src/bin/sudo.rs @@ -46,7 +46,7 @@ pub fn main() { exit(1); }); - let users = AllUsers::new(Config::with_auth()).unwrap_or_exit(1); + let users = AllUsers::authenticator(Config::default()).unwrap_or_exit(1); let groups = AllGroups::new(Config::default()).unwrap_or_exit(1); let uid = get_uid().unwrap_or_exit(1); diff --git a/src/bin/useradd.rs b/src/bin/useradd.rs index bb6d91fab4..06a1762123 100644 --- a/src/bin/useradd.rs +++ b/src/bin/useradd.rs @@ -114,7 +114,7 @@ fn main() { // unwrap is safe because of "+required". clap-rs is cool... let login = args.value_of("LOGIN").unwrap(); - let mut sys_users = AllUsers::new(Config::with_auth()).unwrap_or_exit(1); + let mut sys_users = AllUsers::authenticator(Config::default()).unwrap_or_exit(1); let mut sys_groups = AllGroups::new(Config::default()).unwrap_or_exit(1); let uid = match args.value_of("UID") { diff --git a/src/bin/userdel.rs b/src/bin/userdel.rs index 99f0024e13..96ceebba24 100644 --- a/src/bin/userdel.rs +++ b/src/bin/userdel.rs @@ -48,7 +48,7 @@ fn main() { let login = args.value_of("LOGIN").unwrap(); - let mut sys_users = AllUsers::new(Config::with_auth()).unwrap_or_exit(1); + let mut sys_users = AllUsers::authenticator(Config::default()).unwrap_or_exit(1); let mut sys_groups = AllGroups::new(Config::default()).unwrap_or_exit(1); { sys_groups.remove_user_from_all_groups(login); diff --git a/src/bin/usermod.rs b/src/bin/usermod.rs index b912231f6d..e2963fbf24 100644 --- a/src/bin/usermod.rs +++ b/src/bin/usermod.rs @@ -119,7 +119,7 @@ fn main() { let login = args.value_of("LOGIN").unwrap(); //TODO: Does not always need shadowfile access - let mut sys_users = AllUsers::new(Config::with_auth()).unwrap_or_exit(1); + let mut sys_users = AllUsers::authenticator(Config::default()).unwrap_or_exit(1); let mut sys_groups; if let Some(new_groups) = args.value_of("SET_GROUPS") { diff --git a/src/lib.rs b/src/lib.rs index 50b637e383..8cce72754f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -21,7 +21,7 @@ extern crate syscall; use std::io::Result as IoResult; -use redox_users::{All, AllGroups, Result, User, UsersError}; +use redox_users::{auth, All, AllGroups, Result, User, UsersError}; use syscall::call::{open, fchmod, fchown}; use syscall::error::Result as SysResult; use syscall::flag::{O_CREAT, O_DIRECTORY, O_CLOEXEC}; @@ -75,7 +75,7 @@ impl AllGroupsExt for AllGroups { /// let user = sys_users.get_by_name("goyox86"); /// spawn_shell(user).unwrap(); /// ``` -pub fn spawn_shell(user: &User) -> IoResult { +pub fn spawn_shell(user: &User) -> IoResult { let mut command = user.shell_cmd(); let mut child = command.spawn()?; @@ -86,7 +86,7 @@ pub fn spawn_shell(user: &User) -> IoResult { } /// Creates a directory with 700 user:user permissions -pub fn create_user_dir(user: &User, dir: T) -> SysResult<()> +pub fn create_user_dir(user: &User, dir: T) -> SysResult<()> where T: AsRef + std::convert::AsRef<[u8]> { let fd = open(dir, O_CREAT | O_DIRECTORY | O_CLOEXEC)?;