我们在《如何在 Ubuntu和 Debian 上创建 sudo 用户》一文中提到过 useradd 命令,useradd 命令可以让超级用户(比如root)在 Linux 系统中创建新的用户账户。
它是一个低级实用程序,默认情况下只是简单的创建用户,但是提供了几个选项来创建具有各种配置的用户。
以下是useradd命令的语法:
在这里需要注意,必须是 root 用户或者具有 sudo 权限的用户才能使用次命令。
下面我们来详细看下如何使用 useradd 命令。
使用 useradd 命令在 Linux 中添加新用户
不带任何选项的情况下使用 useradd 命令,如下所示:
上述命令会创建一个用户账户,但是:
- 不会创建用户的主目录;
- 密码必须单独设置;
- 用户的默认 shell 是 sh。
如此,可以使用 passwd 命令为此新用户账户设置密码:
使用 useradd 命令添加用户同时创建主目录
useradd 命令的 -m 选项可以将系统框架目录(system skeleton directory,位于 /etc/skel)中的所有文件复制到新创建的主目录中。
这样就意味着,我们可以使用 -m 选项来创建一个具有主目录的用户:
此外,还可以使用 -d 选项将现有的一个目录指定为新创建用户的主目录:
添加新用户时指定 shell
useradd 命令创建的新用户,其默认 shell 是 sh。在现代系统中,尤其当 bash 或者 zsh 诞生以后,已经很少人在使用 sh 了。
我们可以在创建用户后更改其默认 shell,但也可以在创建用户账户的同时使用 -s 选项来指定一个默认的 shell。
比如,如果我们想要将 bash 作为新用户的默认 shell,可以执行如下操作:
添加新用户时指定一个不同名称的组
通常,创建新用户时,会创建与该用户同名的组,新用户被添加为此组的成员。
使用选项 -g,可以将新用户添加到已存在的组中,作为其默认组:
比如我们在为开发人员创建账户,可能希望将所有开发人员添加到 "dev" 组中。
此外,还可以使用选项 -G(大写的G),额外将用户添加到其他现有组中:
比如,如果我们需要创建一个 sudo 用户,那么在创建该用户的时候还需要将其添加到 sudo 组中,这是其中一个应用场景。
添加具有特定用户ID(UID)的新用户
在使用 useradd 命令创建新用户的时候,可以使用其 -u 选项为新用户指定一个用户ID(UID):
其他
上面我们介绍了 useradd 命令的一些使用方法,我们可以将它的多个选项组合在一起,使用预定义的配置在 Linux 中创建新用户,比如:
如前文所属,在默认情况下,useradd 命令功能比较单一,只是简单的创建用户,所以有很多人更喜欢使用 adduser 命令。关于adduser 和 useradd 命令的区别,我们会在以后单独介绍。