我该怎么做?
我创建了一个没有主目录的用户,现在我想创建一个。不只是一个名为new_user的文件夹,我还想要默认的主目录及其所有文件夹和隐藏文件等。

评论

用户登录时,将自动创建这些子目录(文档,下载等)。尽管我正在寻找通过终端“模拟”他的登录的方法。

@Alaa su new_user:D

@RaduRădeanu是的,我已经尝试过了,也尝试过sudo -i -u new_user,但是它不起作用。我认为我们需要“模拟X登录” ...不知道该怎么做。

登录不会在home中创建子目录。

#1 楼

使用以下命令(作为root用户,如果不是root用户,则使用sudo):

mkhomedir_helper username


为此,文件夹/home/username必须不存在。

对于与X相关的文件夹(桌面,下载等),您将需要在图形环境中登录;它们会在您首次登录时自动生成。

评论


简单实用。这样,您还可以确保新创建的主目录符合您的系统策略,而无需了解它们或进行任何手动修改。

– Gerlos
15年5月4日在11:28

在此之前,我必须先在/ etc / passwd中输入用户名。

–user79878
2015年12月11日在22:34

简单..就可以了(tm)。应该是公认的答案

– Newtopian
16-3-15的15:00

不要忘记使用ls -l / home检查目录的权限。我发现新目录可被所有其他用户读取,因此我使用chmod go-r-x / home / username删除了这些权限。

–唐·柯比(Don Kirkby)
19年1月28日在20:15

这不会在insde home中创建文件,例如.bashrc。没为我工作。

–Desik
20 Apr 25'8:43

#2 楼

子目录(文档,下载等)是在用户首次通过GNOME登录时自动创建的,前提是使用正确的权限创建了主目录。这是一个演示:

alaa@aa-lu:~$ sudo useradd testinguser
alaa@aa-lu:~$ sudo passwd testinguser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
alaa@aa-lu:~$ sudo ls -l /home
total 20
drwxr-xr-x 55 alaa alaa  4096 Aug 22 22:00 alaa
drwx------  2 root 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
total 24
drwxr-xr-x 55 alaa        alaa         4096 Aug 22 22:00 alaa
drwx------  2 root        root        16384 Jun  5 09:46 lost+found
drwxr-xr-x  2 testinguser testinguser  4096 Aug 23 10:03 testinguser
alaa@aa-lu:~$ ls -l /home/testinguser/
total 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/
total 36
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Desktop
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Documents
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Downloads
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Music
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:07 Pictures
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Public
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Templates
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Videos


我不需要复制/etc/skel的内容。

如果可能,您可以尝试按照以下步骤创建另一个新用户吗?完成后,您可以通过sudo deluser testinguser && sudo rm -r /home/testinguser删除此新用户。

如果所有这些都对您不起作用,那么我猜这是一个错误。

评论


在某些情况下,使用useradd时,不会自动将新用户的默认主目录设置为/ home / username。因此,首先必须确定这一点。

– RaduRădeanu
13年8月23日在7:13

您能举一个例子说明这些情况吗?在useradd的手册页中:“ useradd将使用/ etc / default / useradd或默认情况下/ home中HOME变量指定的基本目录”。 / etc / default / useradd中的HOME变量默认情况下未定义,因此useradd将始终使用/ home。无论如何,我将编辑答案并移动该部分以检查/ etc / passwd。

– Alaa Ali
13年8月23日在7:49



这里有一个例子。另一个例子:您删除了一个用户,但没有删除该用户的目录和文件。然后再次添加一个具有相同名称的用户。而且有很多,也没有错误:)

– RaduRădeanu
13年8月23日在8:14



如果用户行/ etc / passwd中没有/ bin / sh,则必须为该用户添加外壳程序,例如,默认外壳程序为usermod -s / bin / sh testuser

–rubo77
2014年10月5日在8:46

并非所有系统都具有GNOME,建议仅删除某人以创建主目录就删除并重新添加该用户是不好的建议。

–ntwrkguru
18-10-4在14:24

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


评论


这似乎试图创建一个新用户,因为它告诉我“用户'new-user'已经存在”。

– Jo Rijo
13年8月22日在22:51

无论如何,在创建新用户时,我还测试了-m标志,但是它不起作用。它仅复制框架文件。

– Alaa Ali
13年8月23日在6:13

@Jo:这怎么不正确,因为根据最初的帖子,该用户已经存在。

–crafter
13年8月23日在6:16

此答案不能解决问题。复制/ etc / skel不会在主目录中创建子目录。另外,在创建新用户时使用useradd -m,而不是在已经添加用户时使用。

– Alaa Ali
13年8月26日在18:56

我更新了帖子,因此在login.defs配置文件中将CREATE_HOME设置为yes。

–crafter
13年8月26日在21:44

#4 楼

如果使用adduser命令创建了新用户,则无需为新用户创建主目录。将自动为新用户创建一个名为/home的目录中带有用户名的主目录,该目录具有以下子目录:桌面,下载,文档,音乐,图片,视频(及其他)。

如果使用useradd命令创建了新用户,请在终端中运行以下命令:

 sudo -i     #enter your user password when you are asked
gedit /etc/passwd
 


以root身份编辑/etc/passwd文件(这是最重要的步骤)。找到具有新用户名的行,并为他设置默认主目录,如下所示:

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
 


首次登录后,将自动填充新用户的文件夹。

另请参阅:如何在创建帐户后创建用户主文件夹?

评论


据我所知,home文件夹不是自动创建的,您必须手动创建它并更新/ etc / passwd中的用户条目(如果尚未存在)。用户登录后,主文件夹将自动填充这些子目录。但是,所有这些工作都是在有人使用adduser而不是useradd添加用户的情况下进行的。

– Alaa Ali
2013年8月22日19:30



@Alaa我几天前刚刚测试过,我使用了adduser:主文件夹是自动创建的。实际上,首次登录后将自动填充主文件夹。

– RaduRădeanu
13年8月22日在19:43



这似乎无济于事。也许我会尝试另一个问题的bash脚本,但是我不能只是在/ home /中创建一个名为new_user的文件夹,然后将/ etc / skel的内容复制到其中吗?那是bash脚本的作用吗?

– Jo Rijo
13年8月22日在23:03

@JoRijo我编辑了答案。

– RaduRădeanu
13年8月23日在5:57

@RaduRădeanu是不是cp / etc / skel / * / home / new_username?另外,有没有理由使用两个连续的chown命令?

– Alaa Ali
13年8月23日在8:01



#5 楼

您真正需要的只是主文件夹,以使其正常工作。作为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