我正在尝试向系统添加新用户。我很困惑要运行哪个命令:useradd
或adduser
?
答案1
根据手册,您应该使用adduser
:
手动添加用户
描述
useradd 是一个用于添加用户的低级实用程序。在 Debian 上,管理员通常应该使用 adduser(8)。
答案2
不管联机帮助页对useradd
和有何说明userdel
,我总是使用低级后端二进制文件:useradd
, userdel
, groupadd
, groupdel
。
前端脚本是交互式的,旨在用户友好,但做同样的事情。这确实是个人喜好的问题。
从实际差异来看:
useradd
和groupadd
与命令usermod
和具有类似的选项groupmod
,并且这些命令没有前端脚本(即无前端脚本moduser
或modgroup
前端脚本),因此使用类似的命令进行帐户维护更加一致。
默认设置有不同的配置文件,例如用户 ID、shell、登录组等。因此,请确保您知道要编辑哪个文件来更改设置。
前端脚本“保护”您免于输入愚蠢的名称,除非您提供该--force-badname
选项。例如,包含特殊字符或以数字开头的用户名或组名称。这是不太可能意外发生的事情,因此不需要“保护”。
前端脚本还会“保护”您免于删除 root 帐户,除非您使用--force option
.我不知道为什么有人会尝试使用它。还值得指出的是,如果用户帐户下有正在运行的进程,则无法删除该用户帐户,并且始终有进程以 root 身份运行,因此无论如何都会失败。
(不过我一直没有勇气去尝试。)
只有前端脚本 adduser 具有加密主目录的选项。
然而,有些事情是友好脚本无法做到的,您需要求助于二进制命令,尽管这些是您通常不需要做的事情:
useradd 可以覆盖骨架主目录的默认值,而不需要编辑配置文件,或创建新的配置文件。查看
-k
选项。useradd可以通过该选项阻止将新创建的用户添加到lastlog数据库中
-l
。useradd 和 groupadd 可以使用该选项分别创建具有非唯一 UID 或 GID 的帐户
-o
。这些脚本不提供此功能。如果系统上启用了 selinux,则 useradd 可以使用该
-Z
选项创建具有 selinux 映射的新用户。但是,一旦创建了帐户,也可以使用其他命令来完成此操作,例如semanage
或usermod
。最后,也许最重要的是,只有二进制命令才能在备用根目录下的备用系统上运行,例如
/snap/core
使用-R
选项。