vlambda博客
学习文章列表

Linux: 修改用户的默认家目录位置

场景描述



在日常的运维工作中,经常会遇到购买并初始化开发机的情况。一般开发机上用户数目会比较多,大家都喜欢把数据放到自己的家目录下,家目录默认都在系统盘上,而系统盘通常都不会太大,这就常常导致系统盘被占满,而数据盘没有被利用起来的情况。


一开始,我会督促大家,将数据放到系统盘上,但是后来发现,这种靠人督促的办法,并不是一个好的办法,效果不好,而且增加运维琐事。


经过一段时间的摸索后,决定将开发机上普通用户的默认家目录位置更改到数据盘上,而运维类的帐号依旧保留在系统盘中(这样数据盘有问题时,运维类帐号依然可以登录系统排查问题)。


修改用户默认家目录位置



机器初始化完成之后(此时运维类帐号已添加完成),就可以按照下面的步骤操作,将普通用户的默认家目录位置更改到系统盘上。


我们假设一台开发机上有两块盘,一块系统盘,一块数据盘,数据盘挂载在 /data 目录下,我们想要将用户的默认家目录位置变更到 /data/home/ 目录下,首先创建这个目录:

mkdir /data/home


Linux 中添加账户的命令常用的有两个:

  • adduser

  • useradd


通过 man adduser 命令来查看 adduser 的配置文件在哪里:

FILES

       /etc/adduser.conf

              Default configuration file for adduser and addgroup

man adduser

在 FILES 节中,我们可以看到 adduser 命令的配置文件是 /etc/adduser.conf,编辑这个文件,修改 DHOME 字段,将

DHOME=/home

变更为

DHOME=/data/home

保存并关闭文件编辑器,这样 adduser 的配置就修改完了。


同样的方法,使用 man useradd 命令来查看 useradd 的配置文件在哪里:

/etc/default/useradd         Default values for account creation.

man useradd

可以看到,帐号创建相关的配置在 /etc/default/useradd 文件中,编辑这个文件,修改 HOME 字段的值,将

HOME=/home

修改为

HOME=/data/home

保存并关闭文件编辑器。


此时尝试使用 adduser 或 useradd 命令添加一个账户,会发现新建用户的家目录在 /data/home (数据盘) 了。


总结



通过修改 adduser 的配置文件 /etc/adduser.conf 和 useradd 的配置文件 /etc/default/useradd,可以变更新建用户的默认家目录位置;但是系统中已有用户的家目录位置不会变更。如果要变更系统中已有用户的家目录位置,可以使用 usermod 命令,你可以参考 usermod 的 man 手册来查看具体的方法。