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)