diff --git a/docs/user-management.md b/docs/user-management.md index e2334dc..2026915 100644 --- a/docs/user-management.md +++ b/docs/user-management.md @@ -21,61 +21,84 @@ kanidm login --name idm_admin --url https://auth.home.2rjus.net ## User Management -### Creating Users +POSIX users are managed imperatively via the `kanidm` CLI. This allows setting +all attributes (including UNIX password) in one workflow. -Users are provisioned declaratively in `services/kanidm/default.nix`: - -```nix -services.kanidm.provision.persons.username = { - displayName = "Display Name"; - groups = [ "admins" "users" "ssh-users" ]; -}; -``` - -### Enabling POSIX for Users - -For PAM/NSS integration, users need POSIX attributes and a UNIX password: +### Creating a POSIX User ```bash -# Check if user has POSIX enabled -kanidm person get +# Create the person +kanidm person create "" + +# Add to groups +kanidm group add-members ssh-users +kanidm group add-members users + +# Enable POSIX (UID is auto-assigned from Kanidm's range) +kanidm person posix set # Set UNIX password (required for SSH login) kanidm person posix set-password + +# Optionally set login shell +kanidm person posix set --shell /bin/zsh +``` + +### Viewing User Details + +```bash +kanidm person get +``` + +### Removing a User + +```bash +kanidm person delete ``` ## Group Management -### Creating Groups +Groups for POSIX access are also managed via CLI. -Groups are provisioned declaratively: - -```nix -services.kanidm.provision.groups = { - admins = { }; - users = { }; - ssh-users = { }; -}; -``` - -### Enabling POSIX for Groups - -Groups must have POSIX enabled to be resolved via NSS: +### Creating a POSIX Group ```bash -# Enable POSIX on a group with a specific GID -kanidm group posix set --gidnumber +# Create the group +kanidm group create -# Example: enable ssh-users group -kanidm group posix set ssh-users --gidnumber 68000 +# Enable POSIX with a specific GID +kanidm group posix set --gidnumber ``` +### Adding Members + +```bash +kanidm group add-members +``` + +### Viewing Group Details + +```bash +kanidm group get +kanidm group list-members +``` + +### Current Groups + +| Group | GID | Purpose | +|-------|-----|---------| +| ssh-users | 68000 | SSH login access | +| admins | 68001 | Administrative access | +| users | 68002 | General users | + ### UID/GID Allocation +Kanidm auto-assigns UIDs/GIDs from its configured range. For manually assigned GIDs: + | Range | Purpose | |-------|---------| -| 65,536 - 67,999 | Users | -| 68,000 - 69,999 | Groups | +| 65,536+ | Users (auto-assigned) | +| 68,000 - 68,999 | Groups (manually assigned) | ## PAM/NSS Client Configuration