What's the difference between 'useradd' and 'adduser'?

Solution 1:

In the case of Debian and its related distros, adduser is a friendlier interactive frontend to useradd.

Solution 2:

Always use adduser (and deluser when deleting users).

The useradd, userdel and usermod commands are lowlevel utilities which are there for historical reasons, while adduser/deluser Do The Right Thing™. (I remember which to use by thinking that user* comes after adduser/deluser in the alphabet, and therefore is "worse".)

According to the respective manpages (on Ubuntu 12.04 Precise Pangolin, i.e. a Debian derivative system).

Manpage for adduser says:

(Emphasis added.)

adduser and addgroup add users and groups to the system according to command line options and configuration information in /etc/adduser.conf. They are friendlier front ends to the low level tools like useradd, groupadd and usermod programs, by default choosing Debian policy conformant UID and GID values, creating a home directory with skeletal configuration, running a custom script, and other features. adduser and addgroup can be run in one of five modes:

Manpage for useradd says:

useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.

See also:

Solution 3:

On Ubuntu, useradd simply creates an entry in the user database (/etc/passwd etc.).

adduser on the other hand also creates a home directory for the user, populates it with the content of /etc/skel and lets you set the password interactively.

Solution 4:

lrwxrwxrwx. 1 root root 7 Nov 17 13:52 /usr/sbin/adduser -> useradd

One is a "shortcut" / "symbolic link" to the other. So no difference.

This is on redhat linux (and centos / fedora), it may not hold true on other distros.