--system
添加用户甚至组时使用该选项的目的和好处是什么?
我想知道为什么我看到它被添加到许多 Docker 容器中并被推荐为最佳实践?
例如,我将一个非 root 用户添加到 Alpine Docker 容器中,以便在开发时使用,并再次在运行时使用。
我当前使用的版本是:
- adduser版本是3.118,并且高山adduser人
- Alpine版本是3.12
- Windows 10 上的 Docker v19.03.13(20H2 更新)
手册页上写着“创建系统用户”,好的,但是作为系统用户你会得到什么?或者使用时处于系统组中addgroup -S
。
我没有系统管理员背景,所以我不确定这意味着什么,并且想清楚什么时候应该使用它?
其他一些读物
搜索谷歌提供了一些见解,但无法验证我所读到的内容。它不会要求您为用户设置密码,但我可以使用 use 来
--disabled-password
实现这一点。
然后我在这里找到了这篇文章,我知道它是出于组织目的,但也对我没有多大帮助。我只是更清楚一点,但没有足够的信心来解释何时使用它们。
答案1
系统用户与普通用户类似,但具有组织目的。唯一的区别是:
- 它们没有有效期(没有老化设置)
- 他们的 uid 低于 999,就像 /etc/login.defs 上设置的那样(可以更改):
还有标准系统用户,它们带有操作系统或与包安装他们中的大多数人都具有上述属性(传统的):
- 其中大多数都有 /sbin/nologin 或 /bin/false 作为 shell
- 他们有“*”或“!!”在 /etc/shadow 中意味着没有人可以简单地使用它们。
- 并且可以具有我在第一部分中显示的属性。
要检查这些标准系统用户列表:/usr/share/doc/setup-/uidgid
一个例子可以是添加韓國用户作为系统用户;例如,如果我们想在我们的环境中设置身份访问管理策略,我们可以为所有用户自动化;我们这样做只是为了系统用户基于他们的uid因为万一韓國帐户过期应用程序将停止运行。
答案2
对于alpine linux.adduser -S 会创建一个系统用户,该用户id从100开始,并且无法登录。
kong:x:100:65533:Linux 用户,,,:/home/kong:/sbin/nologin
但是当 adduser 没有 -S 时情况有所不同
horward:x:1000:1000:Linux 用户,,,:/home/horward:/bin/ash