共计 1602 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | useradd 命令可以让超级用户(比如 root)在 Linux 系统中创建新的用户账户。下面我们来详细看下如何使用 useradd 命令。 |
AJNAPY Data Background digital illustration
我们在《如何在 Ubuntu 和 Debian 上创建 sudo 用户》一文中提到过 useradd 命令,useradd 命令可以让 超级用户(比如 root)在 Linux 系统中创建新的用户账户。
它是一个低级实用程序,默认情况下只是简单的创建用户,但是提供了几个选项来创建具有各种配置的用户。
以下是 useradd 命令的语法:
useradd [options] username
在这里需要注意,必须是 root 用户或者具有 sudo 权限的用户才能使用次命令
下面我们来详细看下如何使用 useradd 命令。
不带任何选项的情况下使用 useradd 命令,如下所示:
useradd new_username
上述命令会创建一个用户账户,但是:
- 不会创建用户的主目录;
- 密码必须单独设置;
- 用户的默认 shell 是 sh。
如此,可以使用 passwd 命令为此新用户账户设置密码:
passwd new_username
useradd 命令的 -m 选项可以将系统框架目录(system skeleton directory,位于 /etc/skel)中的所有文件复制到新创建的主目录中。
这样就意味着,我们可以使用 -m 选项来创建一个具有主目录的用户:
useradd -m new_username
此外,还可以使用 -d 选项将现有的一个目录指定为新创建用户的主目录:
useradd -d Path_to_Existing_Directory new_username
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 组中,这是其中一个应用场景。
在使用 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 命令的区别,我们会在以后单独介绍。
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)