When we use useradd, what is the difference between -d and -m? Because the definitions of both sound similar, which is responsible for creating a home directory.

1 Answer 1


The 2 options are not really similar, but they can work together. If you look at the manpage of useradd you'll find the following:

       -d, --home-dir HOME_DIR
           The new user will be created using HOME_DIR as the value for the user's login
           directory. The default is to append the LOGIN name to BASE_DIR and use that as the
           login directory name. The directory HOME_DIR does not have to exist but will not be
           created if it is missing.

       -m, --create-home
           Create the user's home directory if it does not exist. The files and directories
           contained in the skeleton directory (which can be defined with the -k option) will be
           copied to the home directory.

           By default, if this option is not specified and CREATE_HOME is not enabled, no home
           directories are created.

The -d option is just to set where the home directory of the created user will be but it will not create it if it doesn't exist. While the -m option will create the home directory that is set by -d if it doesn't exist.

  • 1
    Unrelated to your question but, the useradd command is a low level command, it is usually recommended to use adduser instead which is a friendlier frontend for the useradd command.
    – Dan
    Jun 24, 2021 at 10:33
  • Thanks for the tip, actually Im new to linux and currently learning about System administration.
    – shaunx333
    Jun 24, 2021 at 10:40
  • 2
    Not every Linux has adduser, e.g. Arch Linux and its derivatives. Jun 24, 2021 at 19:27

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.