一些文档我正在经历一个布尔开关,用于确定用户是“系统”用户还是“普通”用户(默认为“普通”)。
这两种用户模式有什么区别?我不需要了解用户是什么或为什么需要他们(甚至是“假”用户),但这种特殊的区别对我来说并不直观。
答案1
这不是技术差异,而是组织决策。例如,在登录对话框中显示普通用户是有意义的(这样您就可以单击它们而不必键入用户名),但不会在那里显示系统帐户(守护进程和其他自动进程在其下运行的 UID) 。
因此,为两个组的 UID 定义了一个边界,或者更确切地说是两个范围。在 openSUSE 中,该文件/etc/login.defs
包含以下几行:
# useradd 中自动选择 uid 的最小/最大值 # # SYS_UID_MIN 到 SYS_UID_MAX 是范围 # 动态分配的管理和系统帐户的 UID。 # UID_MIN 到 UID_MAX 是动态的 UID 范围 # 分配的用户帐户。 # UID_MIN 1000 UID_MAX 60000 # 系统账户 SYS_UID_MIN 100 SYS_UID_MAX 499
和
# groupadd 中自动选择 gid 的最小/最大值 # # SYS_GID_MIN 到 SYS_GID_MAX 是范围 # 动态分配的管理组和系统组的 GID。 # GID_MIN 到 GID_MAX 是动态 GID 的范围 # 分配的组。 # GID_MIN 1000 GID_MAX 60000 # 系统账户 SYS_GID_MIN 100 SYS_GID_MAX 499
答案2
主要区别在于帐户的目的,因此这对于管理员和审计员来说主要是一个有用的区别。存在一些技术差异 - 从adduser
文档:
将在 中创建没有老化信息的系统用户,并且他们的数字标识符在-范围
/etc/shadow
内选择,在 中定义,而不是- (以及用于创建组的 GID 对应项)。SYS_UID_MIN
SYS_UID_MAX
/etc/login.defs
UID_MIN
UID_MAX
据我所知(我不了解 Puppet),从 Puppet 的角度来看,区别在于它是否将选项传递-r
给adduser
.
如需更广阔的视角,请参阅是否可以从 /etc/passwd 中“隐藏”帐户?
答案3
区别在于帐户 UID 值的分配方式以及帐户的使用方式。
进一步说明位于维基百科:用户标识符:
Linux 标准基本核心规范指定 0 到 99 范围内的 UID 值应由系统,并且不应由应用程序创建,而从 100 到 499 的 UID 应保留用于动态分配系统管理员和安装后脚本。[4]
通常,最终用户的 UID 超出这些范围,通常从 1000 开始。