What's the difference between useradd and adduser? When/why should I prefer using one or the other?


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

  • 7
    It is not about friendliness, it's about usage. You can use adduser for interactively adding an account or you can use useradd for batch adding accounts. useradd has also an interactive mode. – tkorkunckaya Sep 26 '12 at 9:49
  • @tkorkunckaya: so what usage based on your description then if useradd can also do interactive mode? – lpapp Jun 19 '14 at 9:48
  • useradd does not have an interactive mode – ychaouche Feb 21 '18 at 12:35

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:

  • Agree with that, "Always use adduser" over useradd. This should be the accepted answer ! – TwystO Aug 16 '16 at 18:27

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.

  • 3
    +1. man useradd : "useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead." – petrus Jan 5 '11 at 15:41
  • I believe adduser also interactively fills in the GECOS fields – Michael Lowman Jan 5 '11 at 16:07
  • @petrus why so? – lpapp Jun 19 '14 at 9:48
  • useradd can create the home directory, set password, add to groups, create skeleton files and even set the shell. – ychaouche Feb 21 '18 at 12:37

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.

  • 3
    Correct on RH, but some dists such as ubuntu has different binaries. – Ency Jan 5 '11 at 14:48
  • True, i'll edit my answer. – Sirex Jan 5 '11 at 14:58
  • 4
    Many binaries and scripts alter their behavior based on the command line invocation. – jscott Jan 5 '11 at 15:15

On FreeBSD:
adduser is a "friendly" interactive Q&A way to add local users.
useradd doesn't exist.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.