How to add user without useradd command?
It's not recommended to manually modify /etc/passwd
, /etc/shadow
, /etc/group
or /etc/gshadow
because the risk of breakage. If you're looking for an alternative command that is easier to use, take a look at adduser(8)
. All you have to run is:
sudo adduser user
The shell will be /bin/bash
by default per /etc/adduser.conf
.
Usually, if you wish to add a user with the bash shell, thereby create a home directory /home/user
and a user group, you would use:
sudo useradd --create-home --shell /bin/bash --user-group user
This command is basically determining a free User ID $UID
and Group ID $GID
and then executing the next commands:
echo "user:x:$UID:$GID::/home/user:/bin/bash" | sudo tee -a /etc/passwd
echo "user:x:$GID:" | sudo tee -a /etc/group
echo "user:!:$DATE_OF_LAST_PASS_CHANGE:0:99999:7:::" | sudo tee -a /etc/shadow
echo "user:!::" | sudo tee -a /etc/gshadow
..and thereby possibly making a backup of the files.
The next manual pages about the file formats may be of interest to you:
passwd(5)
group(5)
shadow(5)
gshadow(5)
Although not usually necessary or recommended, the answer to the question of How to add user without useradd command is to use sudo vipw
This will launch your system-defined editor while locking the passwd file. Enter a line for a new user. (In vi, shift-G to get to the last line then yy p to duplicate it.) Edit the username and create a unique user ID number.
After saving the file and exiting the editor, you'll be prompted to edit /etc/shadow. Use the same technique to create a new line and use "*" for the password hash. The new account is locked. Use passwd username
to unlock it and set a password.
It's also necessary to create a home directory, copy files from the skeleton directory, set group permissions, etc. But vipw
is your main resource. See also vigr
.
Source: http://itguykelly.wordpress.com/2011/04/19/manually-add-new-user-to-red-hatfedoracentos/ (yes, these commands work across various flavors of *nix)