我该怎么做呢?我创建了一个没有主目录的用户,现在我想创建一个。不仅是一个名为new_user的文件夹,我还希望包含其所有文件夹和隐藏文件等的默认主目录。
su new_user
:D
sudo -i -u new_user
但是没有用。我认为我们需要“模拟X登录” ...不知道该怎么做。
我该怎么做呢?我创建了一个没有主目录的用户,现在我想创建一个。不仅是一个名为new_user的文件夹,我还希望包含其所有文件夹和隐藏文件等的默认主目录。
su new_user
:D
sudo -i -u new_user
但是没有用。我认为我们需要“模拟X登录” ...不知道该怎么做。
Answers:
使用以下命令(以超级用户身份使用,如果不是超级用户,则使用sudo):
mkhomedir_helper username
为此,文件夹/home/username
必须不存在。
对于与X相关的文件夹(桌面,下载等),您将需要在图形环境中登录;它们会在您首次登录时自动生成。
ls -l /home
。我发现新目录可被所有其他用户读取,因此我使用删除了这些权限chmod go-r-x /home/username
。
子目录(文档,下载等)是在用户首次通过GNOME登录时自动创建的,前提是使用正确的权限创建了主目录。这是一个示范:
alaa @ aa-lu:〜$ sudo用户添加测试用户 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 16384 Jun 5 09:46 lost + found alaa @ aa-lu:〜$ sudo mkdir / home / testinguser alaa @ aa-lu:〜$ sudo chown testinguser:testinguser / home / testinguser alaa @ aa-lu:〜$ ls -l / home 总共24 drwxr-xr-x 55 alaa alaa 4096年8月22日22:00 alaa drwx ------ 2根root 16384 Jun 5 09:46 lost + found drwxr-xr-x 2测试用户testinguser 4096 8月23日10:03 testinguser alaa @ aa-lu:〜$ ls -l / home / testinguser / 总计0 alaa @ aa-lu:〜$
您可以通过检查中的条目来检查是否正确设置了用户的主目录/etc/passwd
。默认情况下,您应该看到主目录设置为/home/testinguser
:
alaa @ aa-lu:〜$ grep testinguser / etc / passwd testinguser:x:1001:1001 :: / home / testinguser:/ bin / sh
如果您在该目录中看不到主目录/home/testinguser
,sudo usermod -d /home/testinguser testinguser
则虽然不需要使用此命令,因为它应该默认设置(根据useradd
的联机帮助页),但您需要执行该命令以对其进行更新。
然后,我注销了帐户,然后使用再次登录testinguser
,这是自动创建的子目录:
alaa @ aa-lu:〜$ ls -l / home / testinguser / 总计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 Aug 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
。
如果所有这些都不适合您,那么我猜这是一个错误。
useradd
,新用户的默认主目录不会自动设置为/home/username
。因此,首先必须确定这一点。
useradd
:“ useradd将使用HOME变量在中指定的基本目录/etc/default/useradd
,或者/home
默认情况下使用”。/etc/default/useradd
默认情况下未定义HOME变量in ,因此useradd将始终使用/home
。无论如何,我将编辑答案并移动零件进行检查/etc/passwd
。
/bin/sh
用户行中/etc/passwd
,则必须为该用户添加外壳程序,例如,默认外壳程序为usermod -s /bin/sh testuser
更新:解决方案已损坏,对我也不起作用。
如果要创建用户的主目录(如果该目录不存在),请运行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.
-m
无论如何,在创建新用户时,我还测试了该标志,但该标志无效。它仅复制框架文件。
/etc/skel
不会在主目录中创建子目录。另外,useradd -m
在创建新用户时使用,而不是在已添加用户时使用。
如果使用adduser
命令创建了新用户,则无需为新用户创建主目录。将自动创建一个新目录,该目录以目录中的用户名命名/home
,并具有以下子目录:桌面,下载,文档,音乐,图片,视频(及其他)。
如果使用useradd
命令创建了新用户,请在终端中运行以下命令:
sudo -i #enter your user password when you are asked
gedit /etc/passwd
以/etc/passwd
root 身份编辑文件(这是最重要的步骤)。找到带有新用户名的行,并为他设置默认主目录,如下所示:
new_username:x:1001:1001::/home/new_username:/bin/sh
在这一行,您还可以为新用户添加真实姓名,或设置默认外壳程序。像这样:
new_username:x:1001:1001:Real New Username,,,:/home/new_username:/bin/bash
请注意,请勿进行任何其他更改。
保存文件后,要从根帐户退出,请运行以下命令:
mkdir /home/new_username #to create the directory /home/new_username
cp -r /etc/skel/. /home/new_username #to copy skeleton files to /home/new_username
chown -R new_username:new_username /home/new_username #to change the owner of /home/new_username to the new user
完成所有这些操作后,首次登录后将自动填充新用户的主文件夹。
另请参阅:创建帐户后如何制作用户主文件夹?
/etc/passwd
(如果尚未存在)。用户登录后,主文件夹将自动填充这些子目录。但是,所有这些工作都是在有人使用adduser
而不是来添加用户的情况下进行的useradd
。
adduser
:home文件夹是自动创建的。实际上,首次登录后将自动填充主文件夹。
cp /etc/skel/* /home/new_username
吗?另外,使用两个连续chown
命令是否有原因?
您真正需要的只是主文件夹,以使其正常运行。作为根,
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