http://enos.itcollege.ee/~edmund/osadmin/eng/user-management/user-management.pdf https://help.ubuntu.com/community/AddUsersHowto http://askubuntu.com/questions/345974/what-is-the-difference-between-adduser-and-useradd https://wiki.itcollege.ee/index.php/Gpasswd https://wiki.itcollege.ee/index.php/Adduser_%26_useradd https://help.ubuntu.com/lts/serverguide/user-management.html configuration file: /etc/adduser.conf simulate root: sudo -i log in as another user: su - username current user ID: id who is logged in and what doing: w current user groups: groups which users are in the system: ls /home sudo getent passwd (will show also system users) does not show system users: sudo awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd create a user sudo adduser username there is also useradd but not suggested unless you know details user: sysadmin user: engineer, designer group: specialists - create group at first - create user in that group sudo groupadd specialists sudo adduser --ingroup specialists engineer change home folder permissions that only user can access chmod 700 folder chmod go-rwx folder create a folder /var/data/specialists and change group of that folder to specialists make this folder accessible only for that group sudo chmod 070 /var/data/specialists make symlinks to user folders: ln -s target linkname ln -s /var/data/specialists /home/engineer/ add user to group: sudo adduser user group sudo gpasswd -a user group change group: sudo chgrp group file/folder change ownership ---------------- sudo chown user: file/folder sudo chown :group file/folder remove from group sudo gpasswd -d user group remove group: sudo delgroup groupname creating e.g. FTP user without ability to log in using shell: ls -l /bin/false add /bin/false to /etc/shells change /etc/passwd appropriate user shell to /bin/false lock password (can still log in over SSH) usermod -L passwd -l unlock password usermod -U passwd -u lock user chage -E 0 #set expiry - cannot log in over SSH chage -l #check expiry status chage -E -1 #remove expiry # # # compgen -u #check users compgen -g #check groups more information: https://unix.stackexchange.com/questions/151118/understand-compgen-builtin-command https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html