Linux Tutorials - Herong's Tutorial Examples - v5.45, by Herong Yang
Add Users and Groups Manually
This section provides a tutorial example on how to add users and groups manually on Linux computers.
Sometimes, you may want to add a user and its group manually without using the "useradd" and "groupadd" commands. This can be done by editing 4 system files and adding 2 user directories:
1. /etc/passwd - Contains information about users. You can add a new line in /etc/passwd to define the new user:
herong$ sudo vi /etc/passwd jennifer:x:1066:1066:Jennifer Lopez:/home/jennifer:/bin/bash | | | | | | |- Shell command path | | | | | |- Home directory path | | | | |- Full name | | | |Group ID, unique and > GID_MIN | | |User ID, unique and > UID_MIN | |- x indicates that encrypted password is in /etc/shadow |- User name
2. /etc/shadow - Contains information about user passwords. You can add a new line in /etc/shadow to define password for the new user:
herong$ sudo vi /etc/shadow jennifer:$6$wjcfpF...$QMEmJy...:18878:0:99999:7::: | | | | | |||- Expiration time | | | | | ||- Grace period | | | | | |- Warning period | | | | |- Maximum days before change | | | |- Minimum days before change | | |- Last time is was changed | |- Password, encrypted with a salt |- User name
The difficult part of the above line is the encrypted password. You can copy it from an existing user in the /etc/shadow file.
3. /etc/group - Contains information about groups. You can add a new line in /etc/group to define the new group for the new user:
herong$ sudo vi /etc/group jennifer:x:1066: | | |Group ID, matches the group ID in /etc/password | |- x indicates that encrypted password is in /etc/shadow |- Group name
4. /etc/gshadow - Contains information about group passwords. You can add a new line in /etc/gshadow to define password for the new group:
herong$ sudo vi /etc/gshadow jennifer:!:: | |||- Group members, 'jennifer' is defaulted | ||- Group administrators, 'jennifer' is defaulted | |- ! indicates that non-members can not access it with password |- Group name
5. /home/{username} - User's home directory. You can create it manually with "mkdir" command and change its ownership:
herong$ sudo mkdir /home/jennifer herong$ sudo chown jennifer /home/jennifer herong$ sudo chgrp jennifer /home/jennifer herong$ sudo ls -la /home/jennifer drwxr-xr-x. 10 jennifer jennifer 29 Apr 1 2022 . drwxr-xr-x. 9 root root 133 Apr 1 2022 ..
Or you can copy user's home directory from another system and adjust its ownership.
6. /var/spool/mail/{username} - User's email file. You can create an empty file and change its ownership:
herong$ sudo touch /var/spool/mail/jennifer herong$ sudo chown jennifer /var/spool/mail/jennifer herong$ sudo chgrp mail /var/spool/mail/jennifer herong$ sudo ls -l jennifer /home/jennifer -rw-rw----. 1 jennifer mail 0 Apr 1 2022 jennifer
Or you can copy user's email file from another system and adjust its ownership.
Table of Contents
Cockpit - Web Portal for Administrator
Group Access Permissions on Files
"adduser/usermod/userdel" - Commands to Manage Users
►Add Users and Groups Manually
SELinux - Security-Enhanced Linux
SSH Protocol and ssh/scp Commands
Software Package Manager on CentOS - DNF and YUM
vsftpd - Very Secure FTP Daemon