我应该使用 useradd 还是 adduser?

我应该使用 useradd 还是 adduser?

我正在尝试向系统添加新用户。我很困惑要运行哪个命令:useraddadduser

答案1

根据手册,您应该使用adduser

手动添加用户

描述

useradd 是一个用于添加用户的低级实用程序。在 Debian 上,管理员通常应该使用 adduser(8)。

答案2

不管联机帮助页对useradd和有何说明userdel,我总是使用低级后端二进制文件:useradd, userdel, groupadd, groupdel

前端脚本是交互式的,旨在用户友好,但做同样的事情。这确实是个人喜好的问题。

从实际差异来看:

useraddgroupadd与命令usermod和具有类似的选项groupmod,并且这些命令没有前端脚本(即无前端脚本modusermodgroup前端脚本),因此使用类似的命令进行帐户维护更加一致。

默认设置有不同的配置文件,例如用户 ID、shell、登录组等。因此,请确保您知道要编辑哪个文件来更改设置。

前端脚本“保护”您免于输入愚蠢的名称,除非您提供该--force-badname选项。例如,包含特殊字符或以数字开头的用户名或组名称。这是不太可能意外发生的事情,因此不需要“保护”。

前端脚本还会“保护”您免于删除 root 帐户,除非您使用--force option.我不知道为什么有人会尝试使用它。还值得指出的是,如果用户帐户下有正在运行的进程,则无法删除该用户帐户,并且始终有进程以 root 身份运行,因此无论如何都会失败。

(不过我一直没有勇气去尝试。)

只有前端脚本 adduser 具有加密主目录的选项。

然而,有些事情是友好脚本无法做到的,您需要求助于二进制命令,尽管这些是您通常不需要做的事情:

  • useradd 可以覆盖骨架主目录的默认值,而不需要编辑配置文件,或创建新的配置文件。查看-k选项。

  • useradd可以通过该选项阻止将新创建的用户添加到lastlog数据库中-l

  • useradd 和 groupadd 可以使用该选项分别创建具有非唯一 UID 或 GID 的帐户-o。这些脚本不提供此功能。

  • 如果系统上启用了 selinux,则 useradd 可以使用该-Z选项创建具有 selinux 映射的新用户。但是,一旦创建了帐户,也可以使用其他命令来完成此操作,例如semanageusermod

  • 最后,也许最重要的是,只有二进制命令才能在备用根目录下的备用系统上运行,例如/snap/core使用-R选项。

相关内容