Gra*_*eme 78 users ubuntu debian useradd
除了更广泛的useraddDebian 系统之外,还包含一个额外的adduser命令,该命令为添加用户和一些相关任务提供了更高级别的界面。其他 SE 站点上有各种问题/答案,其中详细说明了这些命令之间的基本区别,例如:
大多数答案基本上都说adduser为交互式添加用户提供了更好的界面,但没有提供adduser与useradd. 所以:
adduser不做useradd?Gra*_*eme 86
首先,各自的手册页片段突出了两个命令之间的差异,并给出了一些正在发生的事情的指示。对于adduser:
adduser 和 addgroup 根据命令行选项和 /etc/adduser.conf 中的配置信息向系统添加用户和组。它们是对 useradd、groupadd 和 usermod 程序等低级工具更友好的前端,默认情况下选择符合 Debian 策略的 UID 和 GID 值,使用骨架配置创建主目录,运行自定义脚本和其他功能。
然后对于useradd:
useradd 是用于添加用户的低级实用程序。在 Debian 上,管理员通常应该使用 adduser(8) 来代替。
进一步调查adduser发现它是一个 perl 脚本,它提供了一个高级接口,因此提供了以下命令的一些功能:
useraddgroupaddpasswd - 用于添加/更改用户密码。gpasswd - 用于添加/更改组密码。usermod - 用于更改各种用户相关参数。chfn - 用于添加/更改用户的附加信息。chage - 用于更改密码到期信息。edquota - 用于更改磁盘使用配额。adduser命令的基本运行如下:
adduser username
Run Code Online (Sandbox Code Playgroud)
这个简单的命令会做很多事情:
username。/home/username并将文件复制/etc/skel到其中。该useradd程序可以完成大部分工作,但是默认情况下它不会这样做,并且需要其他选项。一些信息需要更多的命令:
useradd -m -U username
passwd username
chfn username
Run Code Online (Sandbox Code Playgroud)
请注意,adduser确保创建的 UID 和 GID 符合Debian 政策。创建普通用户useradd似乎没问题,前提是UID_MIN/ UID_MAXin/etc/login.defs与 Debian 政策相匹配。什么是一个问题,虽然是Debian的指定系统用户的UID这似乎只支持在特定的范围内/etc/adduser.conf,所以天真地增加了系统用户与useradd在正确的范围叶子不指定UID / GUID严重问题的可能性。
另一个常见用途adduser是简化将用户添加到组的过程。在这里,以下命令:
adduser username newgroup
Run Code Online (Sandbox Code Playgroud)
相当于下面的usermod命令:
usermod -a -G newgroup username
Run Code Online (Sandbox Code Playgroud)
usermod在这种情况下的主要缺点是忘记传递附加选项(即-a:)最终会在将用户添加到“newgroup”之前从所有组中删除用户(即:-G单独意味着“替换为”)。
adduser在这里使用的一个缺点是您一次只能指定一个组。
我遇到的一个显着差异(并且在此处的答案中没有看到)是创建系统用户的含义。
useradd --system似乎暗示--shell /bin/bash,而adduser --system暗示--shell /usr/sbin/nologin,这就是我想要的。
因此,如果我既不需要 shell,又不需要主目录,我可以像这样使用useradd
useradd --system --shell /usr/sbin/nologin foo
Run Code Online (Sandbox Code Playgroud)
这导致例如以下条目/etc/passwd
foo:x:994:991::/home/foo:/usr/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
或者像这样使用adduser
adduser --system --no-create-home foo
Run Code Online (Sandbox Code Playgroud)
这导致例如以下条目/etc/passwd
foo:x:110:65534::/home/foo:/usr/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
另外,adduser不创建组(用户 110 在组 65534 中,也称为no group)。接受的答案还提到了有关 (G)UID 的风险,所以我肯定会坚持使用adduser。
来源:在 Raspberry Pi 操作系统(基于 Debian Buster)上测试。
| 归档时间: |
|
| 查看次数: |
72304 次 |
| 最近记录: |