普通用户和系统用户有什么区别?

普通用户和系统用户有什么区别?

一些文档我正在经历一个布尔开关,用于确定用户是“系统”用户还是“普通”用户(默认为“普通”)。

这两种用户模式有什么区别?我不需要了解用户是什么或为什么需要他们(甚至是“假”用户),但这种特殊的区别对我来说并不直观。

答案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_MINSYS_UID_MAX/etc/login.defsUID_MINUID_MAX

据我所知(我不了解 Puppet),从 Puppet 的角度来看,区别在于它是否将选项传递-radduser.

如需更广阔的视角,请参阅是否可以从 /etc/passwd 中“隐藏”帐户?

答案3

区别在于帐户 UID 值的分配方式以及帐户的使用方式。

进一步说明位于维基百科:用户标识符:

Linux 标准基本核心规范指定 0 到 99 范围内的 UID 值应由系统,并且不应由应用程序创建,而从 100 到 499 的 UID 应保留用于动态分配系统管理员和安装后脚本。[4]

通常,最终用户的 UID 超出这些范围,通常从 1000 开始。

相关内容