Linux User Management Snippets
Linux User Management Snippets #
Related: Set up SFTP users
Understanding /etc/passwd
format #
This file contains one entry per line for each user.
An entry looks like the following:
username:x:0:1:comment:/home/directory:/login/shell
All values are separated by a colon. I recommend using getenv
and cut
in combination to output one of the seven parts.
$ getent passwd username | cut -d: -f1
> username
The name of the user (1-32 characters)$ getent passwd username | cut -d: -f2
> x
Password,x
indicates that there is an encrypted password which is stored in/etc/shadow
$ getent passwd username | cut -d: -f3
> 0
User ID, unique. 0 => root, 1-99 => predefined accounts, 100-999 => admin/system accounts$ getent passwd username | cut -d: -f4
> 1
Primary Group ID, stored in/etc/groups
$ getent passwd username | cut -d: -f5
> comment
Comment, additional information$ getent passwd username | cut -d: -f6
> /home/directory
path to home directory$ getent passwd username | cut -d: -f7
> /login/shell
login shell, typically/bin/bash
List all users #
To get a list of all users you could use the cat
command in combination with the cut
command already used above:
$ cat /etc/passwd | cut -d: -f1
root
daemon
bin
sys
sync
..
Edit an user #
If you want to edit an user you've to use the keyword usermod
. To get a full list of what's possible, have a look at the usermod man page.
Example
Changing the default login shell / deny SSH shell access:
usermod -s /bin/false username
Allow SFTP Users to connect to the database #
Edit /etc/ssh/sshd_config
. Find the matching group entry. Set AllowTcpForwarding
to yes
. Now the user should be able to login to your database.