Pet*_*etr 85 linux debian user-management
我想知道:为什么 Debian Linux 上有这两个命令,名称和功能都非常相似?这一直让我感到困惑。
use*_*032 95
useradd是与系统一起编译的本机二进制文件。但是,adduser是一个useradd在后端使用二进制文件的 perl 脚本。
adduser比它的后端更加用户友好和互动useradd。提供的功能没有区别。
小智 17
adduser 相对于useradd的主要优点是处理系统级用户。使用adduser,系统级用户帐户在创建时会为系统用户在 home 中放置一个用户目录,而useradd不会自动创建。如果您阅读 man,除了系统级用户和关联的主目录是自动的之外,它们本质上是相同的。adduser自动为系统级用户创建一个 /home/user 目录,其中useradd 中没有规定,除非由-m选项指定。我遇到的其他读物一般指出 UID 和 GUID 是由adduser 中接受的一致 Debian 标准分配的.
小智 5
在我检查的几个 Redhat 实例中(2011 年的 4.9 和 2017 年的 6.9),adduser 只是 useradd 的别名,而不是 Perl 脚本。在 Redhat 6.9 中是这样的:
$ ls -la /usr/sbin/useradd /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Nov 2 2016 /usr/sbin/adduser -> useradd
-rwxr-x---. 1 root root 111320 Feb 9 2016 /usr/sbin/useradd
Run Code Online (Sandbox Code Playgroud)
我记得 useradd 是“正确”程序是这样的:添加用户只是 CRUD 范围中的一项操作。您还需要“修改”和“删除”操作(“读取”可能是通过查看 /etc/passwd 来覆盖的)。因此,这些程序被命名为user*(分别为 useradd、usermod 和 userdel)。我想替代的*user命名约定(adduser、moduser 和 deluser——这些不存在)也可以工作。但会稍微尴尬一些(原因我暂时无法表达清楚:)