本简要指南解释了如何在 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 模块不存在,则 PAM 模块将创建用户的主目录。
首先,该模块创建主目录,然后用指定的 skel 目录的内容填充它们。 默认值为 umask
是 0022
path-to-skel 的默认值为 /etc/skel
.
请允许我向您展示一个 example 解释如何在帮助下为现有用户创建主目录 mkhomedir_helper
命令。
首先,让我们创建一个名为的新用户 ostechnix 使用 useradd
命令:
$ useradd ostechnix
给用户设置密码:
$ passwd ostechnix
现在切换到新用户:
$ su - ostechnix
您将遇到以下错误消息:
su: warning: cannot change directory to /home/ostechnix: No such file or directory
正如您在上面的输出中看到的,用户 ostechnix 的主目录不存在,因此出现此错误。
让我们通过调查来验证它 /home
目录:
$ ls -l /home/ total 0 drwx------ 1 vagrant vagrant 72 Dec 15 13:19 vagrant
好吧,确实没有用户 ostechnix 的主目录。
因此,让我们为现有用户(即我们的例子中的 ostechnix)创建主目录 mkhomedir_helper
命令。
为此,如果您已经登录,首先从用户 ostechnix 注销:
$ exit
并运行以下命令为名为的用户创建主目录 ostechnix:
$ sudo mkhomedir_helper ostechnix
请注意,您必须将上述命令运行为 root
用户或不同 sudo
用户。
现在切换到用户 ostechnix:
$ su - ostechnix
这次您不会收到任何警告消息,因为名为 ostechnix 的用户的主目录已创建 mkhomedir_helper
命令。
[[email protected] ~]$ pwd
/home/ostechnix
有关更多详细信息,请参阅手册页:
$ man mkhomedir_helper
您现在知道如何在创建用户后创建主目录。 当您忘记包含时,这可能很有用 -m
创建用户时的选项 useradd
命令。
而不是使用 useradd
, 您可以使用 adduser
命令将自动创建用户的主目录,无需任何选项。
相关阅读:
- 如何在 Linux 中将主目录移动到新分区或磁盘
- 在 Alpine Linux 中为用户添加、删除和授予 Sudo 权限
- 在 Arch Linux 中添加、删除和授予用户 Sudo 权限
- 添加、删除和授予用户 Sudo 权限 Fedora
- 在 CentOS 中添加、删除和授予用户 Sudo 权限
- 在 Ubuntu 中添加、删除和授予用户 Sudo 权限
来自 FreeCliparts 的精选图片 关注.