Ubuntu上的adduseruseradd命令有什么区别?

评论

有关超级用户和服务器故障的相同问题

以及在Unix stackexchange上(相当详细的答案)

的确是一个很好的,有效的问题。问题不是人们在各自的情况下问这个问题,而是这个问题完全需要问。

#1 楼


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

adduser比后端useradd更易于使用和交互。所提供的功能没有区别。


来源:“ adduser”和“ useradd”之间有什么区别?

评论


带有-m选项的useradd将创建主目录。

– Richsinn
14年8月8日,0:02

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

–安德斯
2014-09-22 14:14

-1:不能说出命令之间的根本区别:它们具有不同的角色,一个是底层工具。一个是perl脚本,另一个是二进制文件这一事实无关紧要。另外,功能上也有所不同。

–MestreLion
15年1月10日在8:20



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

– Quentin Skousen
16年1月22日在20:10

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

– pzkpfw
16年5月1日在10:41

#2 楼

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

useradduserdelusermod命令是低级实用程序,出于历史原因,它们存在,而adduser/deluser做正确的事™。 (我记得以为user*是字母adduser/deluser之后的字母,因此它是“更糟糕的”。)

根据各自的联机帮助页(在Ubuntu 12.04 Precise Pangolin上,即Debian衍生系统) )。

adduser的联机帮助说:

(添加了强调。)


adduseraddgroup将用户和组添加到系统根据/etc/adduser.conf中的命令行
选项和配置信息。它们是useraddgroupaddusermod程序等底层工具的更友好的
前端,
默认情况下选择符合Debian策略的UID和GID值,创建具有骨架配置的home
目录,并运行自定义脚本和其他功能。
adduseraddgroup可以在以下五个模式之一中运行:


useradd的联机帮助页说:


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


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

评论


我永远不记得哪一个,所以这对我来说是愚蠢的助记符,如果它可以帮助任何人:)“用户”押韵与“失败者”,“失败者”排在最后。因此:adduser,deluser。

– Mads Skjern
15年3月13日在12:27

我实际上不同意“ Always user adduser”:对于自动脚本,我更喜欢useradd,因为它始终存在,非交互且不特定于发行版。

–晚上
2015年4月15日10:47



我在openSUSE上尝试了adduser,但它不存在。(13.2)

–cst1992
16年5月24日在7:18

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

–zrajm
16年5月24日在15:40

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

–莱文
17年8月2日at 1:10

#3 楼

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

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

评论


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

– Ricalsin
2014年8月9日在2:38

#4 楼

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


在某些较新的发行版中,包括Ubuntu 14.4,adduser会提示您输入密码和“ gecos”等信息(手指命令的数据)。这意味着它不太适合从脚本调用(信用:Wernight的评论中已经提到过)。
可以通过传递空参数来抑制提示:
 adduser --disabled-password --gecos "" USER



useradd允许您通过-G选项传递多个附加组来添加用户。 adduser似乎要求您为每个组添加一次调用命令。



评论


在Ubuntu 16.04上不起作用。

–answeranswerker
17年2月10日,0:55

#5 楼

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

评论


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

–ychaouche
18年2月21日在11:38

#6 楼

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

adduser try:

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
18年2月21日在11:42

#7 楼

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


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


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

#8 楼

使用adduseruseradd的最大区别是:


通过adduser命令,将默认创建用户的home文件夹。
通过useradd命令,没有home用户的文件夹。

所以我建议您使用adduser而不是useradd