在Linux中添加新用户

在Linux中添加新用户

我在 Linux 中创建了一个新用户

useradd connectweb

我在 /etc/passwd 文件中看到以下内容

connectweb:x:1002:1002::/home/connectweb:/bin/sh

但是当我尝试导航到文件夹 /home/connectweb 时,该文件夹不存在../home 可用,但 /home/connectweb 不可用。

答案1

只需按照以下命令即可解决您的情况

  1. 执行此命令添加目录

    mkdir -p /home/connectweb
    
  2. 如果需要从/etc/skel目录中复制文件.bashrc 等文件

  3. 更改此目录的所有权

    chown -R connectweb:connectweb /home/connectweb
    
  4. 如果你想增加一点安全性,请更改权限

    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

相关内容