问题描述
命令adduser
和useradd
有什么区别?
最佳解决思路
useradd
is native binary compiled with the system. But,adduser
is a perl script which usesuseradd
binary in back-end.
adduser
is more user friendly and interactive than its back-enduseradd
. There’s no difference in features provided.
来源:What’s the difference between “adduser” and “useradd”?
次佳解决思路
从命令行创建新用户时,始终使用adduser
(和删除用户时为deluser
)。 (如果您正在编写脚本,特别是如果您的目标是便携性,则可能需要使用低级别实用程序 – 而adduser
/deluser
可能不适用于所有发行版,例如SuSE上。)
useradd
,userdel
和usermod
命令是由于历史原因而存在的低级实用程序,而adduser/deluser
是正确的事情™。 (我记得user*
在adduser/deluser
之后出现在字母表中,因此是”worse”。)
根据各自的手册(在Ubuntu 12.04 Precise Pangolin上,即Debian衍生系统)。
adduser
的手册页说:
(强调添加。)
adduser
andaddgroup
add users and groups to the system according to command line options and configuration information in/etc/adduser.conf
. They are friendlier front ends to the low level tools likeuseradd
,groupadd
andusermod
programs, by default choosing Debian policy conformant UID and GID values, creating a home directory with skeletal configuration, running a custom script, and other features.adduser
andaddgroup
can be run in one of five modes:
useradd
的手册页说:
useradd
is a low level utility for adding users. On Debian, administrators should usually useadduser(8)
instead.
另见:What’s the difference between “adduser” and “useradd”?(在超级用户上)
第三种解决思路
adduser
:添加用户完整的个人资料和信息(通行证,配额,许可等)
useradd
:仅向用户添加他的名字(如果您想添加一个只有名称的临时用户,则不需要其他信息)
第四种思路
adduser
更友好,因为它设置了帐户的主文件夹和其他设置(例如,在登录时自动加载系统统计信息和通知),而useradd
只创建用户。
第五种思路
另外一些差异,导致useradd可能更可取的特定场景。
-
在一些较新的发行版中,包括Ubuntu 14.4,adduser会提示输入密码和”gecos”(finger命令的数据)等信息。这意味着它可能不太适合从脚本中调用(信用:已在Wernight的评论中提及)。
提示可以通过传递null参数来抑制:
adduser --disabled-password --gecos "" USER
-
useradd
允许您通过-G
选项传递多个附加组以添加用户。adduser
似乎要求您为每个组添加一次该命令。