在 Python 中将列表写入文件的 3 种方法
2024年3月17日在 Linux 中列出硬盘的 6 种不同方法
2024年3月17日在 Linux 中创建新用户时,您可以选择使用 adduser 或 useradd 命令。
那么 useradd 和 adduser 命令有什么区别呢?其中一个比另一个更好吗?您应该使用哪一个?useradd或adduser?
adduser 和 useradd 命令之间的区别
Useradd 是内置的 Linux 命令,可以在任何 Linux 系统上找到。但是,使用此低级别创建新用户是一项繁琐的任务,因为默认情况下它不会创建主目录和用户密码。
Adduser 不是标准 Linux 命令。它本质上是一个在后台使用 useradd 命令的 Perl 脚本。这个高级实用程序可以更有效地在 Linux 上正确创建新用户。它为您提供了创建主目录、设置密码以及其他一些参数的选项。
让我们看一下这两个命令以及它们如何在 Linux 中创建用户。
用户添加命令
首先,让我们看一下 useradd 命令的默认行为。您是否运行过以下命令?
useradd new_user
我还没有看到该命令创建完整用户帐户的发行版。即使为新用户设置密码后,您也需要使用其他选项。
例如,在我的系统上,上述命令在 /etc/passwd 文件中添加了以下条目。
![](https://www.alaica.com/wp-content/uploads/linux-303.png)
如果您阅读了有关在 Linux 上列出用户的文章,您可能已经熟悉 /etc/passwd 文件的内容。一开始看起来不错,但如果你开始挖掘,你很快就会发现一些事情不太对劲。
首先,第二个字段包含“x”。这意味着密码信息的占位符位于 /etc/shadow 中。但我没有设置密码。这意味着测试用户将无法登录。
二、主目录。问题是 /home/test 不存在。即使设置了密码,用户登录也会出错。根据其他配置,您的 Linux 系统可能会阻止没有有效主目录的用户登录。最有可能的是,用户test会被允许登录您的系统,至少在文本模式下。但用户test将不被允许创建他的主目录。
第三,默认的登录shell是sh,而不是bash。我不使用 sh 作为 shell。您可能也不知道,因为 bash 是大多数 Linux 发行版上的默认 shell。
虽然可以通过编辑 /etc/login.defs 稍微修改 useradd 的行为,但上述命令几乎不可能创建完整的用户帐户。Useradd 是一个低级实用程序。尽管如此,查看 /etc/login.defs 中的设置还是很有用的。
添加用户命令
Adduser 命令在某些 Linux 发行版上不可用。在其他系统上,它是指向 useradd 的软链接。而在其他一些平台上,它是一个Perl脚本。
Adduser 是一个交互式高级实用程序。它使用低级实用程序 useradd 作为后端。使用 adduser 命令时将使用 /etc/login.defs 中的设置。在基于 Debian 的发行版上,甚至连手册页都建议使用它而不是 useradd 命令。
仅使用用户名调用 adduser 将引导您解决一系列问题。
![](https://www.alaica.com/wp-content/uploads/linux-304.png)
回答几个问题后,将创建一个带有主目录的完整用户帐户。新用户已准备好通过登录管理器或以文本模式登录。
要使用低级实用程序 useradd 获得几乎相同的结果,该命令将类似于以下内容:
sudo useradd -d /home/test -m -s/bin/bash -c FullName,Phone,OtherInfo test && passwd test
-c选项可以毫无问题地删除,后面的逗号分隔列表是添加到 /etc/passwd 的注释。但即便如此,adduser 仍为您节省了两个额外的命令。
Adduser 命令有一个可供您使用的选项列表。这是我认为最有用的简短列表。有关更多详细信息,请参阅帮助或手册页。
- 系统:添加系统用户。默认情况下,系统用户被放置在 nogroup 组中。要将系统用户添加到现有组,请提供 –gid 或 –ingroup 选项。
- home DIR:使用 DIR 作为主目录而不是默认目录。如果需要,将创建目录并复制框架文件。
- shell SHELL:使用 SHELL 代替默认值。
- ingroup GROUP:将用户的主要组设置为 GROUP
- add_extra_groups:将新用户添加到配置文件中定义的额外组。
Adduser 的配置文件允许您设置创建帐户时要使用的默认值。该文件有详细记录,可让您设置默认值,例如:
- 默认外壳
- 主目录
- 额外团体
- 添加额外的组
结论
根据我作为系统管理员的个人经验,adduser 在 Linux 中创建新用户要好得多。在任何一天,我更喜欢 adduser 而不是 useradd,我也推荐同样的做法。
你呢?adduser 和 useradd 之间您更喜欢哪一个?