adduser 和 useradd 有什么区别?

Joe*_*zas 547 adduser useradd

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

Rad*_*anu 485

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

adduser比它的后端更加用户友好和互动 useradd。提供的功能没有区别。

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

  • 带有`-m` 选项的useradd 将创建主目录。 (76认同)
  • 我每次都得用谷歌搜索这个……我怎样才能帮助自己记住哪个是哪个? (34认同)
  • 实现不是那么有趣,语义才是。像`adduser(8)` 更易于使用,默认情况下会以您期望的方式创建和设置用户。而 `useradd(8)` 只做你所要求的,所以你想要创建一个主目录,你必须告诉它为你创建它。 (13认同)
  • @kkhugs 对我来说“adduser”感觉最直观,因为它是一个听起来像英语的命令,而另一个在语义上则不然。如果您记得它是两者中“最直观”的,您也可以尝试将其记住为首选/更容易的。 (13认同)
  • 在红帽下`/usr/sbin/adduser -> useradd` .. sheesh ... (5认同)
  • -1:没有说明命令之间的根本区别:它们具有不同的*角色*,一个是低级工具。一个是 perl 脚本而另一个是二进制文件这一事实无关紧要。此外,功能上存在*差异。 (3认同)

zra*_*ajm 178

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值,创建一个主目录与骨骼的配置,运行定制脚本,以及其他功能。 adduser并且addgroup可以以五种模式之一运行:

手册页useradd说:

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

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

  • 我实际上*不同意*“*始终用户`adduser`*”:对于自动化脚本,我更喜欢`useradd`,因为它**始终存在,非交互式,而不是[特定于发行版的](http://superuser .com/a/547970)**。 (36认同)
  • 我永远不记得是哪一个,所以这是我愚蠢的助记符,如果它对任何人有帮助:) “用户”与“失败者”押韵,“失败者”排在最后。因此:adduser,deluser。 (6认同)
  • 在红帽上`/usr/sbin/adduser -> useradd` (4认同)
  • 我在 openSUSE 上试过 `adduser`,但它不存在。(13.2) (2认同)
  • @cst1992 你说得对,我已经编辑了答案以反映这一点。奇怪的是,当我在工作中的 SuSE 11 系统上尝试 `locate adduser` 时,我发现有一个 `adduser` 手册页,但没有二进制文件(也没有 `deluser` 手册页和命令)。 (2认同)

小智 21

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

useradd: 只用他的名字添加用户(如果你想添加一个只有名字的临时用户,不需要其他信息)

  • +1 欢迎!我对无法解释他们之前的否决票的人投了赞成票。保持!优秀的程序员总是会升到顶峰——(不要在没有解释的情况下投反对票)。:) (2认同)

Ada*_*amS 11

另一对差异导致了 useradd 可能更可取的特定场景。

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

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

     adduser --disabled-password --gecos "" USER
    
    Run Code Online (Sandbox Code Playgroud)
  2. useradd允许您通过选项传递多个附加组以添加用户-Gadduser似乎要求您为每个要添加的组调用一次命令。


Pau*_*aul 8

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

  • 错误的。useradd 可以使用 -m 创建主目录,使用 -p 设置密码,使用 -k 创建骨架文件,以及使用 -G 将用户添加到组。 (4认同)
  • @ychaouche “将创建 [...]”和“可以创建 [...]”之间有区别。 (3认同)

Ash*_*rpe 5

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

添加用户尝试:

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
Run Code Online (Sandbox Code Playgroud)

用户添加 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#
Run Code Online (Sandbox Code Playgroud)