====== Manage Users ======
User management is done via LDAP on the ''ldap-01'' jail on bane. We use [[https://git.abi.am/varinka/ldapscript_extension|ldapscript_extension]], a fork of [[https://github.com/martymac/ldapscripts|ldapscripts]] with additional commands like ''ldapaddsshkey'' and ''ldapsetusermail''.
===== Getting Started =====
SSH into bane and enter the LDAP jail:
ssh bane
jexec ldap-01
All commands below are run from inside the ''ldap-01'' jail.
===== Adding a New User =====
First, find the next available ID number — ignore ''14999'' (a special account):
lsldap -u | grep uidNumber | awk -F: '{print $2}' | tr -d ' ' | grep -v 14999 | sort -n | tail -1 | awk '{print $1+1}'
This prints the next available ID (highest UID + 1). This number will be used for both the UID and GID. Then create the user:
ldapadduser username newId newId
''ldapadduser'' takes '' [uid]''. We pass the same number for both GID and UID, since each user gets their own primary group with a matching ID.
===== Creating Datasets =====
TO BE WRITTEN
===== Setting Password =====
ldapsetpasswd username
This prompts you to enter and confirm the new password.
===== Changing CN (Common Name / First Name) =====
ldapsetusercn username "Full Name"
===== Changing SN (Surname) =====
ldapsetusersn username "Surname"
===== Setting User Email =====
ldapsetusermail username user@example.com
===== Adding SSH Key =====
ldapaddsshkey username "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... user@host"
The public key must be quoted as a single argument.
===== Removing SSH Key =====
Removes an SSH public key from a user. If the exact key is not found, nothing is done.
ldapremovesshkey username "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... user@host"
===== Removing User Email =====
Removes a mail address from a user. If the exact mail is not found, nothing is done.
ldapremoveusermail username user@example.com
===== Adding User to a Group =====
ldapaddusertogroup username groupname
===== Getting User Info =====
ldapfinger username
===== See Also =====
* [[infra:ldap|LDAP Configuration]]
* [[infra:start|Infrastructure]]