62

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

6

5 Answers 5

42

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

3
  • 8
    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. Sep 26, 2012 at 9:49
  • @tkorkunckaya: so what usage based on your description then if useradd can also do interactive mode? Jun 19, 2014 at 9:48
  • useradd does not have an interactive mode
    – ychaouche
    Feb 21, 2018 at 12:35
17

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:

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

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.

4
  • 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, 2011 at 15:41
  • I believe adduser also interactively fills in the GECOS fields Jan 5, 2011 at 16:07
  • @petrus why so? Jun 19, 2014 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, 2018 at 12:37
8

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

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .