我在 Linux 中创建了一个新用户
useradd connectweb
我在 /etc/passwd 文件中看到以下内容
connectweb:x:1002:1002::/home/connectweb:/bin/sh
但是当我尝试导航到文件夹 /home/connectweb 时,该文件夹不存在../home 可用,但 /home/connectweb 不可用。
答案1
只需按照以下命令即可解决您的情况
执行此命令添加目录
mkdir -p /home/connectweb
如果需要从
/etc/skel
目录中复制文件.bashrc
等文件更改此目录的所有权
chown -R connectweb:connectweb /home/connectweb
如果你想增加一点安全性,请更改权限
chmod 700 /home/connectweb
将来您可以使用该-m
选项useradd
为您执行上述操作。
答案2
与所有命令一样,如果它们显示出不良行为,请阅读手册页。
这里man useradd
说:
-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.
再次删除用户并使用-m
选项重新创建他,或者手动创建主目录。
答案3
我认为OP关心的是为什么命令没有useradd
创建主目录。
CREATE_HOME
文件中的指令决定/etc/login.defs
命令是否useradd
应默认创建主目录(无需使用该-m
选项)。如果它被注释掉或设置为NO
,只有这样您才必须明确使用命令-m
的选项useradd
来创建主目录。
[root@server ~]# grep CREATE /etc/login.defs
CREATE_HOME yes
[root@server ~]#
如果CREATE_HOME
设置为yes
,则该useradd
命令将在文件中提到的路径中创建主目录/etc/default/useradd
。