原理
执行useradd命令时的流程
1.系统读取/etc/login.defs(用户定义文件)和/etc/default/useradd(用户默认配置文件),借用这两个文件定义的规则 创建用户
2.向 /etc/passwd 和/etc/group添加用户信息 和组信息 向/etc/shadow 中添加密码 向/etc/gshadow 中添加组密码
3.在上述配置文件指定的位置创建默认的家目录并把/etc/skel 下的相关配置文件复制到家目录中
原因
1.若用户创建时指定了其他已经存在的家目录,或者后期使用usermod -d 指令指定了目标用户的家目录,则会导致创建家目录失败从而导致用户家目录不属于该用户
2.若创建后误删家目录也会导致用户没有家目录导致命令行提示符丢失
解决方法
1.①通过usermod -d 目标家目录 目标用户 来修改目标用户的家目录(需要事先确保目标家目录存在若不存在根据相关规则创建目录)
②通过cp /etc/skel/.bash* /home/目标家目录 来手动复制相关配置文件到家目录中从而恢复目标用户的问题
2.①创建目标用户的家目录
②通过cp /etc/skel/.bash* /home/目标家目录 来手动复制相关配置文件到家目录中从而恢复目标用户的问题