Linux 中的 adduser 与 useradd
所有 Linux 系统都可以访问数百或数千个不同的命令。其中一些命令具有类似的目的,尽管通常有一个特定的工具更适合某些工作。 Linux 上的 adduser 和 useradd 命令就是这种情况。
尽管这些命令提供相同的一般功能,但一个是用于添加新用户帐户的高级实用程序,另一个是用于添加新用户帐户的低级实用程序。如果您不确定这意味着什么,请不要担心,我们会解释一切。
在本教程中,您将了解 Linux 中 adduser 和 useradd 命令之间的区别。您还将看到如何使用这两种工具的命令示例,并了解哪种场景适合其中一种工具。
在本教程中您将学习:
adduser
和useradd
之间有什么区别什么情况下使用
adduser
或useradd
更好通过示例如何使用
adduser
或useradd
命令
adduser 和 useradd 命令有什么区别?
简单来说,adduser
是给Linux用户使用的命令,useradd
是给系统使用的命令。从技术角度来说,这意味着 adduser
提供用于添加新用户的高级接口,而 useradd
提供低级接口。
这两个命令基本上执行相同的功能,但 adduser
更易于使用,并且具有一些用户友好的功能,例如交互式提示,要求您提供有关您尝试添加的新用户帐户的信息。由于 adduser
是为 Linux 用户设计的,因此当开发人员更新它或引入自己的实现时,它不会引起太大的麻烦。只有用户受到影响。另一方面,useradd
接收的更新较少,并且需要保持向后兼容。系统函数和脚本依赖于useradd
的可预测性。
因此,这就解释了为什么这两个命令都是必要的。由于命令很容易混淆并且功能基本相同,因此会出现混乱。您会发现很多文档和指南告诉用户执行其中一个命令,并且几乎可以互换使用这两个命令。此外,useradd
是这两个命令中较旧的命令,并且在各种 Linux 发行版中保持更一致,因此某些用户可能更喜欢使用它,尽管它不如 adduser
用户友好>。
作为普通 Linux 用户,在向系统添加新用户时应该使用 adduser
。如果您是开发人员,您将在创建的脚本或程序中使用useradd
,以确保不同发行版和未来更新之间的兼容性。
观察上面的屏幕截图,我们使用 adduser
和 useradd
命令向系统添加新用户帐户。从输出中可以看到,adduser 命令提示我们输入相关信息来配置用户帐户,并给出一些指示用户创建过程的输出。
另一方面,useradd
绝对没有给我们任何输出(这实际上意味着用户创建成功)。之后要配置密码,我们需要执行 passwd
命令,而 useradd
默认情况下会要求我们提供此信息。
adduser 和 useradd 的命令示例
您可以通过打开命令行终端并使用 root 权限执行任一命令来了解如何使用 adduser
和 useradd
命令。按照下面的一些示例来了解这两个命令的语法。
添加用户命令示例
要将新用户添加到系统,通常您不需要指定任何其他选项。只需提供您要添加的用户的名称 - 在本例中为
testuser
。$ sudo adduser testuser
这将产生一个提示,询问您基本的用户信息,并使用
/etc/adduser.conf
中提供的发行版设置应用于新用户。要添加新的系统用户而不是普通用户帐户,请附加
--system
选项。$ sudo adduser --system testuser
使用
--group
选项并提供您要添加的组的名称来添加新用户组。在本例中,名称为testgroup
。$ sudo adduser --group testgroup
要为新帐户配置与默认目录不同的主目录,请使用
--home
选项并提供新用户主目录的路径。在此示例中,我们将使用/home/accounts/testuser
目录。$ sudo adduser --home /home/accounts/testuser testuser
如果您不想为用户设置新密码,请在
adduser
命令中附加--disabled-login
选项。$ sudo adduser --disabled-login testuser
使用
--shell
选项配置除默认 shell 之外的某些系统 shell。在命令中提供 shell 的路径 - 在本例中为/bin/sh
。$ sudo adduser --shell /bin/sh testuser
useradd 命令示例
要创建新用户,只需在
useradd
命令中指定用户名即可。$ sudo useradd testuser
请注意,与
adduser
命令不同,这不会提示您输入其他信息。不会配置密码,也不会自动创建主目录。要配置密码,请继续运行passwd
命令。如果您希望
useradd
命令为您的用户创建新的主目录,则需要附加-m
选项。$ sudo useradd testuser -m
要为新用户配置自定义主目录,您需要像前面的示例一样使用
-m
选项,但还要添加-d
选项并指定主目录的新路径。$ sudo useradd testuser -m -d /home/accounts/testuser
将
-s
选项添加到您的命令中以指定用户的默认 shell。这是他们每次登录时都会看到的 shell。在此示例中,我们将使用/bin/sh
。$ sudo useradd -m testuser -s /bin/sh
注意
您始终可以使用 man 命令来阅读有关 adduser 和 useradd 命令及其官方文档的更多信息。单击上一个链接可查看如何打开 Linux 系统上任何命令的手册页。
结束语
在本指南中,我们了解了 adduser
和 useradd
之间的区别。我们还看到了这两种工具的命令示例。总而言之,adduser
是 useradd
的用户端替代品。这两个命令都是相关的并将继续存在,因为一个命令适用于高级功能,另一个命令适用于低级别功能。