在Linux中为现有用户创建主目录

本简要指南说明了如何使用Linux和类似Unix的操作系统为现有用户创建主目录 mkhomedir_helper 命令。

如您所知,我们可以使用以下命令在Linux和类似Unix的系统中创建新用户 adduser 命令,对不对? 是的,这是对的! 当我们添加新用户时,默认情况下会自动创建相应用户的主目录。

还有另一个命令可以在Linux中创建用户。 它是 useradd。 在我创建了几个用户后 useradd 在Alpine Linux中执行命令时,我注意到没有为用户创建$ HOME目录。 我以前不知道看完之后 useradd 命令的手册页,我意识到我应该包括 -m (要么 --create-home)选项,以使用$ HOME目录创建新用户,如下所示:

$ sudo useradd -m user_name

要么,

$ sudo useradd --create-home user_name

但是,我忘记了包含此选项,而是继续创建了一些新用户。 如果您和我一样,请不要删除现有用户并使用 -m 选项。 您可以使用以下命令轻松为Linux中的现有用户创建主目录 mkhomedir_helper 命令,而不删除和重新创建用户。

在Linux中为现有用户创建主目录

mkhomedir_helper 是针对 pam_mkhomedir 模块。 的 pam_mkhomedir 如果会话开始时不存在,PAM模块将创建用户的主目录。 首先,此模块创建主目录,然后使用指定的skel目录的内容填充主目录。 的默认值 umask0022 且默认路径为 /etc/skel

请允许我向您展示一个示例,以解释如何在的帮助下为现有用户创建主目录 mkhomedir_helper 命令。

首先,让我们创建一个名为 骨科 使用 useradd 命令:

$ useradd ostechnix

设置用户密码:

$ passwd ostechnix

现在切换到新用户:

$ su - ostechnix

您将遇到以下错误消息:

su: warning: cannot change directory to /home/ostechnix: No such file or directory

警告:无法将目录更改为/ home / ostechnix:无此类文件或目录

如您在上面的输出中看到的,用户ostechnix的主目录不存在,因此出现此错误。

让我们通过查看 /home 目录:

$ ls -l /home/
total 0
drwx------ 1 vagrant vagrant 72 Dec 15 13:19 vagrant

好吧,的确,用户ostechnix没有主目录。

因此,让我们为现有用户(例如ostechnix)创建主目录 mkhomedir_helper 命令。

为此,如果您已经登录,请首先从用户ostechnix注销:

$ exit

并运行以下命令为名为的用户创建主目录 骨科

$ sudo mkhomedir_helper ostechnix

请注意,您必须使用 root 用户或其他 sudo 用户。

现在切换到用户ostechnix:

$ su - ostechnix

这次您将不会收到任何警告消息,因为名为ostechnix的用户的主目录已使用 mkhomedir_helper 命令。

[[email protected] ~]$ pwd
/home/ostechnix

使用mkhomedir_helper命令为Linux中的现有用户创建主目录

有关更多详细信息,请参见手册页:

$ man mkhomedir_helper

您现在知道创建用户后如何创建主目录。 当您忘记包括在内时,这会很有用 -m 在创建用户时选择 useradd 命令。

而不是使用 useradd, 您可以使用 adduser 命令,它将自动创建用户的主目录,而无需任何选项。

相关阅读:

  • 向Alpine Linux中的用户添加,删除和授予Sudo特权
  • 在Arch Linux中向用户添加,删除和授予Sudo特权
  • 在CentOS中向用户添加,删除和授予Sudo特权
  • 在Ubuntu中向用户添加,删除和授予Sudo特权

来自FreeCliparts的特色图片 Pixabay

在Linux中创建用户Linux Linux命令Linux技巧Linux用户管理

Sidebar