导读 useradd 命令可以让超级用户(比如root)在 Linux 系统中创建新的用户账户。下面我们来详细看下如何使用 useradd 命令

AJNAPY Data Background digital illustration

我们在​​《如何在 Ubuntu和 Debian 上创建 sudo 用户》​​​一文中提到过 useradd 命令,useradd 命令可以让超级用户(比如root)在 Linux 系统中创建新的用户账户。

它是一个低级实用程序,默认情况下只是简单的创建用户,但是提供了几个选项来创建具有各种配置的用户。

以下是useradd命令的语法:

useradd [options] username

在这里需要注意,必须是 root 用户或者具有 sudo 权限的用户才能使用次命令
下面我们来详细看下如何使用 useradd 命令。

使用 useradd 命令在 Linux 中添加新用户

不带任何选项的情况下使用 useradd 命令,如下所示:

useradd new_username

上述命令会创建一个用户账户,但是:

  • 不会创建用户的主目录;
  • 密码必须单独设置;
  • 用户的默认 shell 是 sh。

如此,可以使用 passwd 命令为此新用户账户设置密码:

passwd new_username
使用 useradd 命令添加用户同时创建主目录

useradd 命令的 -m 选项可以将系统框架目录(system skeleton directory,位于 /etc/skel)中的所有文件复制到新创建的主目录中。

这样就意味着,我们可以使用 -m 选项来创建一个具有主目录的用户:

useradd -m new_username

此外,还可以使用 -d 选项将现有的一个目录指定为新创建用户的主目录:

useradd -d Path_to_Existing_Directory new_username
添加新用户时指定 shell

useradd 命令创建的新用户,其默认 shell 是 sh。在现代系统中,尤其当 bash 或者 zsh 诞生以后,已经很少人在使用 sh 了。

我们可以在创建用户后更改其默认 shell,但也可以在创建用户账户的同时使用 -s 选项来指定一个默认的 shell。

比如,如果我们想要将 bash 作为新用户的默认 shell,可以执行如下操作:

useradd -s /bin/bash new_username
添加新用户时指定一个不同名称的组

通常,创建新用户时,会创建与该用户同名的组,新用户被添加为此组的成员。

使用选项 -g,可以将新用户添加到已存在的组中,作为其默认组:

useradd -g Existing_Group_Name_or_ID new_username

比如我们在为开发人员创建账户,可能希望将所有开发人员添加到 "dev" 组中。

此外,还可以使用选项 -G(大写的G),额外将用户添加到其他现有组中:

useradd -G group_1 group_2 new_username

比如,如果我们需要​​创建一个 sudo 用户​​​,那么在创建该用户的时候还需要将其添加到 sudo 组中,这是其中一个应用场景。

添加具有特定用户ID(UID)的新用户

在使用 useradd 命令创建新用户的时候,可以使用其 -u 选项为新用户指定一个用户ID(UID):

useradd -u uid new_username
其他

上面我们介绍了 useradd 命令的一些使用方法,我们可以将它的多个选项组合在一起,使用预定义的配置在 Linux 中创建新用户,比如:

useradd -d /home/abhishek -s /bin/bash -g my_group

如前文所属,在默认情况下,useradd 命令功能比较单一,只是简单的创建用户,所以有很多人更喜欢使用 adduser 命令。关于adduser 和 useradd 命令的区别,我们会在以后单独介绍。

原文来自:https://www.51cto.com/article/721956.html

本文地址:https://www.linuxprobe.com/linux-useradd-root.html编辑:roc_guo,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/

Linux系统大全:https://www.linuxdown.com/

红帽认证RHCE考试心得:https://www.rhce.net/