我创建了一个没有主目录的用户,现在我想为他们创建一个主目录。不只是一个名为的文件夹/home/new-user
,而是一个完整的默认主目录,其中包含所有常规文件夹和隐藏文件等。
我怎样才能做到这一点?
答案1
使用以下命令(以 root 身份,如果不是 root,则使用 sudo):
mkhomedir_helper username
为了使其正常工作,文件夹/home/username
不能存在。
对于 X 相关的文件夹(桌面、下载等),您需要在图形环境中登录;它们将在您第一次登录时自动生成。
答案2
当用户首次通过 GNOME 登录时,会自动创建子目录(文档、下载等...),前提是主目录以正确的权限创建。下面是一个演示:
alaa@aa-lu:~$sudo useradd 测试用户 alaa@aa-lu:~$sudo passwd 测试用户 输入新的 UNIX 密码: 重新输入新的 UNIX 密码: passwd:密码更新成功 alaa@aa-lu:~$sudo ls -l /home 共 20 drwxr-xr-x 55 alaa alaa 4096 8月22日 22:00 alaa drwx------ 2 root root 16384 6月5日 09:46 丢失+找到 alaa@aa-lu:~$sudo mkdir /home/testinguser alaa@aa-lu:~$sudo chown 测试用户:测试用户 /home/测试用户 alaa@aa-lu:~$ls -l /home 共 24 drwxr-xr-x 55 alaa alaa 4096 8月22日 22:00 alaa drwx------ 2 root root 16384 6月5日 09:46 丢失+找到 drwxr-xr-x 2 testinguser testinguser 4096 8月23日 10:03 testinguser alaa@aa-lu:~$ls -l /home/测试用户/ 共 0 alaa@aa-lu:~$
您可以通过检查 中的条目来检查用户的主目录是否设置正确/etc/passwd
。默认情况下,您应该看到主目录设置为/home/testinguser
:
alaa@aa-lu:~$grep 测试用户 /etc/passwd 测试用户:x:1001:1001::/主页/测试用户:/bin/sh
如果您在那里没有看到主目录/home/testinguser
,则需要执行命令sudo usermod -d /home/testinguser testinguser
来更新它,尽管您不需要使用此命令,因为它应该默认设置(根据的useradd
手册页)。
然后我退出我的帐户,并重新登录testinguser
,以下是自动创建的子目录:
alaa@aa-lu:~$ls -l /home/测试用户/ 共 36 drwxr-xr-x 2 testinguser testinguser 4096 8月23日 10:05 桌面 drwxr-xr-x 2 testinguser testinguser 4096 8月23日 10:05 文档 drwxr-xr-x 2 testinguser testinguser 4096 8月23日 10:05 下载 drwxr-xr-x 2 testinguser testinguser 4096 8月23日 10:05 音乐 drwxr-xr-x 2 testinguser testinguser 4096 8月23日 10:07 图片 drwxr-xr-x 2 testinguser testinguser 4096 8月23日 10:05 公开 drwxr-xr-x 2 testinguser testinguser 4096 8月23日 10:05 模板 drwxr-xr-x 2 testinguser testinguser 4096 8月23日 10:05 视频
我并不需要复制的内容/etc/skel
。
如果可以的话,您能否尝试按照以下步骤创建另一个新用户?完成后,您可以通过 删除此新用户sudo deluser testinguser && sudo rm -r /home/testinguser
。
如果所有这些对你都不起作用,那么我猜这是一个错误。
答案3
更新:该解决方案已损坏并且对我来说不起作用。
如果要在用户主目录不存在的情况下创建它,请运行useradd
带有-m
标志的命令。这将从/etc/skel
目录中复制所有文件。
useradd -m username
您可能需要配置系统设置。根据手册页:
-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.
并进一步指出:
CONFIGURATION
The following configuration variables in /etc/login.defs change the behavior
of this tool:
CREATE_HOME (boolean)
Indicate if a home directory should be created by default for new users.
答案4
您真正需要的只是主文件夹才能使其工作。以 root 身份,
cd /home
cd mkdir username
chown username username
chgrp username username
第一次登录应该创建所有必要的文件,似乎是那些:
drwxr-xr-x 16 fotanus fotanus 4096 Jun 4 17:46 .
drwxr-xr-x 9 root root 4096 Jun 4 17:43 ..
drwx------ 11 fotanus fotanus 4096 Jun 4 17:46 .cache
drwx------ 13 fotanus fotanus 4096 Jun 4 17:46 .config
drwxr-xr-x 2 fotanus fotanus 4096 Jun 4 17:45 Desktop
drwxr-xr-x 2 fotanus fotanus 4096 Jun 4 17:45 Documents
drwxr-xr-x 2 fotanus fotanus 4096 Jun 4 17:45 Downloads
drwx------ 3 fotanus fotanus 4096 Jun 4 17:46 .gconf
drwxrwxr-x 2 fotanus fotanus 4096 Jun 4 17:46 .gstreamer-0.10
-rw------- 1 fotanus fotanus 334 Jun 4 17:45 .ICEauthority
drwxr-xr-x 3 fotanus fotanus 4096 Jun 4 17:45 .local
drwx------ 4 fotanus fotanus 4096 Jun 4 17:45 .mozilla
drwxr-xr-x 2 fotanus fotanus 4096 Jun 4 17:45 Music
drwxr-xr-x 2 fotanus fotanus 4096 Jun 4 17:45 Pictures
drwxr-xr-x 2 fotanus fotanus 4096 Jun 4 17:45 Public
drwxr-xr-x 2 fotanus fotanus 4096 Jun 4 17:45 Templates
drwxr-xr-x 2 fotanus fotanus 4096 Jun 4 17:45 Videos
-rw------- 1 fotanus fotanus 55 Jun 4 17:45 .Xauthority
-rw------- 1 fotanus fotanus 711 Jun 4 17:45 .xsession-errors