如何创建现有用户的主目录?

如何创建现有用户的主目录?
#!/bin/bash

OLDIFS=$IFS
IFS=","

while read firstname lastname userid 
do 
     sudo useradd -c "${firstname}.${lastname}" -d /home/students/student/"${firstname}.${lastname}" -G students -s /bin/bash "${userid}"
done < hello.csv

答案1

来自手册页

-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.

然而,我会强烈建议不是像 一样,为 $HOME 目录使用用户的真实姓名-d /home/students/student/"${firstname}.${lastname}"。想想 (真实) 用户名​​,如“John A. Doe”。他的 $HOME 目录将包含一个空格,这对用户来说并不友好。

答案2

useradd创建新用户,因此,如果用户已经存在(如问题标题所暗示的),那么它将拒绝创建主目录。

相反,一个人可以调用助手命令

sudo mkhomedir_helper "${userid}"

这将创建 中指定的主目录/etc/passwd

相关内容