useradd命令有两个看着非常相似的选项一个是
-b, --base-dir BASE_DIR base directory for the home directory of the
new account
另一个是
-d, --home-dir HOME_DIR home directory of the new account
都是设置用户的家目录相关参数 那么这两个选项有什么区别呢?
接下来让我们看一组命令输出:
root@RespectfulWhimsical-VM:~# useradd test -d /home/homo
root@RespectfulWhimsical-VM:~# cat /etc/passwd|grep test
test:x:1002:1002::/home/homo:/bin/sh
root@RespectfulWhimsical-VM:~# useradd -b /home -d /mnt/homo test
root@RespectfulWhimsical-VM:~# cat /etc/passwd|grep test
test:x:1002:1002::/mnt/homo:/bin/sh
root@RespectfulWhimsical-VM:~# useradd -b /mnt test
root@RespectfulWhimsical-VM:~# cat /etc/passwd|grep test
test:x:1002:1002::/mnt/test:/bin/sh
从以上的输出我们可以得知 在创建用户时(假定系统设置为缺省设置)如未指定HOME_DIR的路径则系统默认会以/home/<USERNAME>作为用户的HOME_DIR也就是~
-b参数的作用就是指定家目录的基准目录,比如创建test用户的时候指定了基准目录为/mnt那么在未指定-d参数的时候就会把BASE_DIR/<USERNAME>作为新账户的HOME_DIR
若同时指定了BASE_DIR和HOME_DIR则以HOME_DIR为准
总结来说-d指定用户的HOME_DIR具体路径 -b 指定创建用户HOME_DIR的基准路径 同时存在两个参数以-d为准