From 34edcfce9b4f014994435a8a0c67d6b5352138ad Mon Sep 17 00:00:00 2001 From: Michele Cereda Date: Sun, 31 Dec 2023 11:27:54 +0100 Subject: [PATCH] refactor: moved to the right userland --- knowledge base/bsd userland/pw.placeholder | 1 + knowledge base/fhs.placeholder | 3 + knowledge base/gnu userland/README.md | 7 +- knowledge base/gnu userland/useradd.md | 75 ++++++++++++++++++++ knowledge base/{ => gnu userland}/userdel.md | 14 ++-- knowledge base/gnu userland/usermod.md | 57 +++++++++++++++ knowledge base/template.md | 2 +- knowledge base/useradd.md | 49 ------------- knowledge base/usermod.md | 48 ------------- 9 files changed, 147 insertions(+), 109 deletions(-) create mode 100644 knowledge base/bsd userland/pw.placeholder create mode 100644 knowledge base/fhs.placeholder create mode 100644 knowledge base/gnu userland/useradd.md rename knowledge base/{ => gnu userland}/userdel.md (50%) create mode 100644 knowledge base/gnu userland/usermod.md delete mode 100644 knowledge base/useradd.md delete mode 100644 knowledge base/usermod.md diff --git a/knowledge base/bsd userland/pw.placeholder b/knowledge base/bsd userland/pw.placeholder new file mode 100644 index 0000000..751930f --- /dev/null +++ b/knowledge base/bsd userland/pw.placeholder @@ -0,0 +1 @@ +https://man.freebsd.org/cgi/man.cgi?pw(8) diff --git a/knowledge base/fhs.placeholder b/knowledge base/fhs.placeholder new file mode 100644 index 0000000..540f9cf --- /dev/null +++ b/knowledge base/fhs.placeholder @@ -0,0 +1,3 @@ +# Filesystem hierarchy standard + +https://refspecs.linuxfoundation.org/fhs.shtml diff --git a/knowledge base/gnu userland/README.md b/knowledge base/gnu userland/README.md index 196e40c..5906d9e 100644 --- a/knowledge base/gnu userland/README.md +++ b/knowledge base/gnu userland/README.md @@ -24,14 +24,11 @@ All the references in the [further readings] section, plus the following: References --> - -[software]: https://www.gnu.org/software/ - [further readings]: #further-readings - -[parallel]: parallel.md + +[software]: https://www.gnu.org/software/ [gnu userland]: https://www.linux.org/threads/gnu-userland.11066/ diff --git a/knowledge base/gnu userland/useradd.md b/knowledge base/gnu userland/useradd.md new file mode 100644 index 0000000..636f42a --- /dev/null +++ b/knowledge base/gnu userland/useradd.md @@ -0,0 +1,75 @@ +# The `useradd` command + +Creates new users. + +1. [TL;DR](#tldr) +1. [Sources](#sources) + +## TL;DR + +```sh +# Create *regular* (non-system) users. +sudo useradd 'username' +sudo useradd -p 'encrypted password' 'username' +sudo useradd --password 'encrypted password' 'username' + +# Create *system* users without an home directory. +sudo useradd -r 'username' +sudo useradd --system 'username' + +# Specify the user ID. +sudo useradd -u '1005' … +sudo useradd --uid '1002' … + +# Specify the primary group. +sudo useradd -g '100' … +sudo useradd --gid 'users' … + +# Specify the expiration date. +sudo useradd -e '2022-10-10' … +sudo useradd --expiredate '2022-04-13' … + +# Specify the login shell. +sudo useradd -s '/bin/bash' … +sudo useradd --shell '/usr/bin/fish' … + +# Add the new users to *additional* groups. +sudo useradd -G 'audio' … +sudo useradd --groups 'video,wheel' … + +# Force the creation of the new users' default home directory. +sudo useradd -m … +sudo useradd --create-home … + +# Avoid the creation of the new users' default home directory. +sudo useradd -M … +sudo useradd --no-create-home … + +# Force the creation of a group with the same name as the users. +sudo useradd -U … +sudo useradd --user-group … + +# Avoid the creation of a group with the same name as the users. +sudo useradd -N … +sudo useradd --no-user-group … + +# Create the users' home directory with specific template files. +sudo useradd -k 'path/to/template/directory' -m … +sudo useradd --skel 'path/to/template/directory' -m … + + +# Create a regular user with a home directory and the 'users' group as its +# primary group. +sudo useradd -mN -g 'users' -p '1234' 'user' +``` + +## Sources + +- [cheat.sh] + + + + +[cheat.sh]: https://cheat.sh/useradd diff --git a/knowledge base/userdel.md b/knowledge base/gnu userland/userdel.md similarity index 50% rename from knowledge base/userdel.md rename to knowledge base/gnu userland/userdel.md index 59a43ad..7c1c195 100644 --- a/knowledge base/userdel.md +++ b/knowledge base/gnu userland/userdel.md @@ -10,14 +10,16 @@ Delete users accounts and their related files. ## TL;DR ```sh -# Remove a user. -sudo userdel username +# Remove users. +sudo userdel 'username' -# Remove a user in other root directory. -sudo userdel --root path/to/other/root username +# Remove users from other (ch)root directories. +sudo userdel -R 'path/to/other/root' … +sudo userdel --root 'path/to/other/root' … -# Remove a user along with the home directory and mail spool. -sudo userdel --remove username +# Remove users along with their home directory and mail spool. +sudo userdel -r … +sudo userdel --remove … ``` ## Sources diff --git a/knowledge base/gnu userland/usermod.md b/knowledge base/gnu userland/usermod.md new file mode 100644 index 0000000..730bc30 --- /dev/null +++ b/knowledge base/gnu userland/usermod.md @@ -0,0 +1,57 @@ +# The `usermod` command + +## Table of contents + +1. [TL;DR](#tldr) +1. [Sources](#sources) + +## TL;DR + +```sh +# Change users' primary group. +sudo usermod -g 'docker' 'bob' +sudo usermod --gid 'sudo' 'luke' + +# Add/remove users to/from supplementary groups. +sudo usermod -aG 'wheel' 'carly' +sudo usermod --append --groups 'kvm,video,audio' 'alice' +sudo usermod -rG 'sudo,admin' 'eve' +sudo usermod --remove --groups 'proftpd' 'dina' + +# Change users' login name. +sudo usermod -l 'to-stephen' 'from-michael' +sudo usermod --login 'to-floyd' 'from-rene' + +# Change users' ID. +sudo usermod -u '1005' 'farra' +sudo usermod --uid '1001' 'hugo' + +# Change users' login shell. +sudo usermod -s '/bin/zsh' 'rick' +sudo usermod --shell '/usr/bin/fish' 'morty' + +# Change users' password. +sudo usermod -p 'encrypted password' 'john' +sudo usermod --password 'encrypted password' 'snow' + +# Lock/unlock users. +sudo usermod -L 'damian' +sudo usermod --lock 'sergio' +sudo usermod -U 'ivan' +sudo usermod --unlock 'lez' + +# Change users' home directory. +sudo usermod -md 'path/to/new/home' 'lenny' +sudo usermod --move-home --home 'path/to/new/home' 'lonny' +``` + +## Sources + +- [cheat.sh] + + + + +[cheat.sh]: https://cheat.sh/usermod diff --git a/knowledge base/template.md b/knowledge base/template.md index 2c7f61f..fdc5b8b 100644 --- a/knowledge base/template.md +++ b/knowledge base/template.md @@ -20,10 +20,10 @@ All the references in the [further readings] section, plus the following: References --> - [further readings]: #further-readings + diff --git a/knowledge base/useradd.md b/knowledge base/useradd.md deleted file mode 100644 index 6864dc2..0000000 --- a/knowledge base/useradd.md +++ /dev/null @@ -1,49 +0,0 @@ -# The `useradd` command - -Creates new users. - -## Table of contents - -1. [TL;DR](#tldr) -1. [Sources](#sources) - -## TL;DR - -```sh -# Create a new user. -sudo useradd username -sudo useradd -p encryptedPassword username - -# Create a new user with the specified user ID. -sudo useradd --uid id username - -# Create a new user with the specified expiration date. -sudo useradd -e 2022-10-10 username - -# Create a new user with the specified shell. -sudo useradd --shell path/to/shell username - -# Create a new user belonging to additional groups. -sudo useradd --groups group1,group2,... username - -# Create a new user with or without its default home directory. -sudo useradd --create-home username -sudo useradd --no-create-home username - -# Create a new user with the home directory filled by template directory files. -sudo useradd --skel path/to/template_directory --create-home username - -# Create a new system user without the home directory. -sudo useradd --system username -``` - -## Sources - -- [cheat.sh] - - - - -[cheat.sh]: https://cheat.sh/useradd diff --git a/knowledge base/usermod.md b/knowledge base/usermod.md deleted file mode 100644 index 46dcd13..0000000 --- a/knowledge base/usermod.md +++ /dev/null @@ -1,48 +0,0 @@ -# The `usermod` command - -## Table of contents - -1. [TL;DR](#tldr) -1. [Sources](#sources) - -## TL;DR - -```sh -# Change a user's primary group. -sudo usermod -g docker bob - -# Add/remove a user to/from supplementary groups. -sudo usermod -aG wheel carly -sudo usermod --append --groups kvm,video,audio alice -sudo usermod -rG sudo,admin eve - -# Change a user's login name -sudo usermod --login to-stephen from-micha - -# Change a user's ID. -sudo usermod --uid 1001 hugo - -# Change a user's shell. -sudo usermod --shell /usr/bin/zsh rick - -# Change a user's password. -sudo usermod -p encryptedPassword john - -# Lock/unlock a user. -sudo usermod -L damian -sudo usermod -U luke - -# Change a user's home directory. -sudo usermod --move-home --home path/to/new_home lonny -``` - -## Sources - -- [cheat.sh] - - - - -[cheat.sh]: https://cheat.sh/usermod