Is there a command to list all users? Also to add, delete, modify users, in the terminal?
To list
To list all local users you can use:
cut -d: -f1 /etc/passwd
To list all users capable of authenticating (in some way), including non-local, see this reply.
Some more useful user-management commands (also limited to local users):
To add
To add a new user you can use:
sudo adduser new_username
or:
sudo useradd new_username
See also: What is the difference between adduser and useradd?
To remove/delete
To remove/delete a user, first you can use:
sudo userdel username
Then you may want to delete the home directory for the deleted user account :
sudo rm -r /home/username
Please use with caution the above command!
To modify
To modify the username of a user:
usermod -l new_username old_username
To change the password for a user:
sudo passwd username
To change the shell for a user:
sudo chsh username
To change the details for a user (for example real name):
sudo chfn username
To add a user to the sudo
group:
adduser username sudo
or
usermod -aG sudo username
And, of course, see also: man adduser
, man useradd
, man userdel
... and so on.
Just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the command(s) below:
cat /etc/passwd
OR
less /etc/passwd
more /etc/passwd
You can also use awk:awk
awk -F':' '{ print $1}' /etc/passwd
The easiest way to get this kind of information is getent
- see manpage for the getent
command . While that command gives the same output as cat /etc/passwd
it is useful to remember because it will give you lists of several elements in the OS.
To get a list of all users you type (as users are listed in /etc/passwd
)
getent passwd
To add a user newuser to the system you would type
sudo adduser newuser
to create a user that has all default settings applied.
Bonus: To add any user (for instance anyuser) to a group (for instance cdrom) type
sudo adduser anyuser cdrom
You delete a user (for instance obsolete) with
sudo deluser obsolete
If you want to delete his home directory/mails as well you type
sudo deluser --remove-home obsolete
And
sudo deluser --remove-all-files obsolete
will remove the user and all files owned by this user on the whole system.