adduser和useradd有什么区别?


Answers:


386

useradd是使用系统编译的本机二进制文件。但是,这adduser是一个useradd在后端使用二进制文件的perl脚本。

adduser比后端更具用户友好性和交互性 useradd。提供的功能没有差异。

资料来源:“ adduser”和“ useradd”有什么区别?


59
add useradd命令不会创建'/ home / username'目录,但adduser命令将
加深

65
带有该-m选项的useradd 将创建主目录。
richsinn 2014年

10
含义不是那么有趣,语义是。Like adduser(8)更加用户友好,并且默认情况下按照您期望的方式创建和设置用户。而且useradd(8)只执行您要问的事情,因此要创建主目录,必须告诉它为您创建它。
Anders 2014年

23
我每次都必须在Google上搜索...我该如何帮助自己记住哪个是哪个?
Quentin Skousen

11
@kkhugs对我来说,“ adduser”感觉最直观,因为它听起来像是英语,而另一个在语义上却不一样。如果您将其记住为两者中的“最直观”,则也可以尝试将其记住为首选/更容易的一种。
pzkpfw '16

146

adduserdeluser从命令行创建新用户时,请始终使用(以及删除用户时)。(如果要编写脚本,尤其是针对可移植性,则可能要改用低级实用程序,并且adduser/ deluser可能不适用于所有发行版,例如SuSE。)

useradduserdelusermod命令是低级公用事业这是有历史的原因,而adduser/deluser做正确的事情™。(我记得通过使用字母user*后面adduser/deluser的字母来考虑使用哪个字母,因此是“较差的”。)

根据各自的手册(在Ubuntu 12.04 Precise Pangolin上,即Debian派生系统)。

的帮助页adduser说:

(已添加重点。)

adduseraddgroup根据中的命令行选项和配置信息将用户和组添加到系统中/etc/adduser.conf他们是友好的前端到低级别的工具像useraddgroupaddusermod计划在默认情况下选择Debian政策符合的UID和GID值,创建一个主目录与骨骼的配置,运行定制脚本,以及其他功能。 adduseraddgroup可以以下五种模式之一运行:

的帮助页useradd说:

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

另请参阅:“ adduser”和“ useradd”之间有什么区别?(在超级用户上)


6
我永远不记得是哪一个,所以这对我有帮助吗?因此:adduser,deluser。
Mads Skjern 2015年

26
我实际上不同意Always useradduser ”:对于自动化脚本,我更喜欢useradd因为它始终存在,非交互且不是发行版特定的
2015年

2
我尝试adduser使用openSUSE,但它不存在。(13.2)
cst1992 '16

1
@ cst1992是的,我已经编辑了答案以反映这一点。奇怪的是,当我locate adduser在工作中尝试使用SuSE 11系统时,我发现有一个adduser联机帮助页,但是没有二进制文件(也没有deluser联机帮助页和命令)。
zrajm

2
在Red Hat上/usr/sbin/adduser -> useradd
Levon

17

adduser:添加具有完整个人资料和信息(通过,配额,权限等)的用户

useradd:仅添加具有用户名的用户(如果要添加仅具有名称的临时用户,则不需要其他信息)


1
+1,欢迎光临!我对不能解释他们先前的不赞成票的人投了赞成票。保持!优秀的程序员总是名列前茅-(并且不要在没有解释的情况下投下反对票)。:)
Ricalsin 2014年

11

还有另外两个差异,这导致在某些特定情况下,最好使用useradd。

  1. 在某些较新的发行版中,包括Ubuntu 14.4,adduser将提示您输入信息,例如密码和“ gecos”(finger命令的数据)。这意味着它不太适合从脚本调用(信用:Wernight在评论中已经提到)。

    可以通过传递空参数来抑制提示:

    adduser --disabled-password --gecos "" USER
    
  2. useradd允许您通过该-G选项传递多个其他组以添加用户。 adduser似乎要求您为每个组添加一次调用命令。


在Ubuntu 16.04上不起作用。
answerSeeker

8

adduser更为友好,因为它可以设置帐户的主文件夹和其他设置(例如,在登录时自动加载系统统计信息和通知),而useradd只是创建用户。


2
错误。useradd可以使用-m创建主目录,使用-p设置密码,使用-k创建框架文件,以及使用-G将用户添加到组。
ychaouche

5

基本区别是“ adduser”将创建主目录并将骨架文件添加到该目录,而“ useradd”将不会创建任何主目录和骨架文件!

adduser试试:

Adding user `try' ...
Adding new group `try' (1001) ...
Adding new user `try' (1001) with group `try' ...
Creating home directory `/home/try' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for try
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

useradd try1:

# ll /home/
total 20
drwxr-xr-x  5 root    root    4096 Oct 26 15:52 ./
drwxr-xr-x 22 root    root    4096 Oct 26 15:47 ../
drwx------  8 ashishk ashishk 4096 Oct 26 15:50 ashishk/
drwxr-xr-x  3 root    root    4096 Oct 14 13:02 .ecryptfs/
drwxr-xr-x  2 try     try     4096 Oct 26 15:52 try/
root@chef-workstation:/home/ashishk#

错误。查看以前的评论
ychaouche

0

我还要指出,adduser它并不总是具有该-M选项,也不尊重专门指出--system标志:

请注意,无论/etc/login.defs(CREATE_HOME)中的默认设置如何,useradd都不会为该用户创建主目录。如果要创建系统帐户的主目录,则必须指定-m选项。

如果您要创建没有主目录的系统用户,请使用useradd --system -M

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.