如何在创建帐户后创建用户主文件夹?

我使用useradd name创建了一个新用户,忘了使用-d -m来创建他们的主目录。 我尝试制作一个,复制/ etc / skel的内容,并将所有内容都添加到新用户。

别名不起作用,比如ll ,我在命令提示符下只有一个$ ,而不是name@server ~$ 。 此外,使用滚轮转储命令行上的垃圾:(

我该如何解决这个问题,还是更容易删除用户并重新开始?

你在命令提示符下有$ ,因为你正在使用sh shell。

name@server的shell基于bash shell。

您必须通过以下方式更改新创建的用户的默认shell: usermod -s /bin/bash

再次使用usermod添加用户主目录(如果不存在)。 usermod -d /home/username

如果用户没有在/etc/passwd指定的主目录:

运行mkhomedir_helper 以创建主目录。 mkhomedir_helper将创建用户主目录并复制/etc/skel中的内容。

如果用户已在/etc/passwd指定了主目录:

例如通过usermod -d /some/directorymkhomedir_helper将无法正常工作。 唯一的方法是为受影响的用户手动创建主目录。

这是一个快速的bash脚本。 使用sudo以root身份运行。 它需要任意数量的参数,每个参数都是需要主目录的用户名。 这做了一些假设:你的主目录在/home ,你的骨架目录是/etc/skel 。 这些是Ubuntu的默认设置。 您可以从gist下载或wget / curl此脚本。

 #!/bin/bash if [ $# -lt 1 ]; then echo "Syntax: $_ USER[ USER[ ...]]" >&2 exit 1 fi exit_code=0 for user in "$@"; do home="/home/$user" cp -R /etc/skel "$home" && echo $'\e[32m'"Copied skeleton to: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to create: $home"$'\e[m' ) >&2 chown -R "$user:$user" "$home" && echo $'\e[32m'"Set owner on: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to set owner on: $home"$'\e[m' ) >&2 done exit $exit_code 

要更改新用户主目录的默认值,您可以给

 sudo useradd -D --base-dir /home/new_user 

命令。 请参阅useradd -D [options]

 man useradd 

看一下xdg-user-dirs-update命令。 它将创建默认的X windows目录:桌面,下载等…

没有默认目录xdg-user-dirs-update --force可以运行xdg-user-dirs-update --force来创建目录。 我必须为我的一个用户帐户执行此操作。

我建议在运行xdg-user-dirs-update命令之前阅读手册页。 xdg-user-dir的手册页添加了一些细节。

“XDG基本目录规范”是freedesktop.org规范的一部分。

如果您忘记使用-d -m ,最好和快速的选择是运行

 sudo mkhomedir_helper username 

with创建主目录,就好像您提供了缺少的选项一样。

我刚刚遇到这个(Ubuntu 12.04),我通过创建一个临时用户,复制用户目录,chowning它,最后删除临时用户来解决它。

 sudo adduser temp sudo cp -r /home/temp /home/name sudo chown -R name.name /home/name sudo deluser temp