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
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.
-
1Unrelated to your question but, the
useradd
command is a low level command, it is usually recommended to useadduser
instead which is a friendlier frontend for theuseradd
command.– DanJun 24, 2021 at 10:33 -
Thanks for the tip, actually Im new to linux and currently learning about System administration. Jun 24, 2021 at 10:40
-
2Not every Linux has
adduser
, e.g. Arch Linux and its derivatives. Jun 24, 2021 at 19:27