用户帐户和服务帐户有什么区别?

Rud*_*koŭ 30 users services accounts

我想知道用户和服务帐户之间的区别。

我知道Jenkins安装到 ubuntu 的eg不是用户,而是服务帐户。

  1. 服务帐号有什么用?
  2. 我们什么时候需要它们?
  3. 如何创建服务帐户?

cou*_*ode 35

用户账号被真实用户使用,服务账号被网络服务器、邮件传输代理、数据库等系统服务使用。 按照惯例,并且仅按照惯例,服务帐户的用户 ID 在低范围内,例如 < 1000 左右. 除了 UID 0,服务帐户没有任何特殊权限。服务帐户可能——而且通常确实——拥有特定资源,甚至设备特殊文件,但它们没有超级用户般的权限。

可以像普通用户帐户一样创建服务帐户(例如使用useradd)。然而,服务帐户通常在安装服务软件时由包管理器创建和配置。因此,即使作为管理员,您也应该很少直接关注服务帐户的创建。

理由很充分:与用户帐户相比,服务帐户通常没有“适当的”登录外壳,即它们具有/usr/sbin/nologin作为登录外壳(或者,在过去,/bin/false)。此外,服务帐户通常被锁定,即无法登录(对于传统的/etc/passwd,/etc/shadow这可以通过将密码散列设置为任意值来实现,例如*或x)。这是为了加强服务帐户免受滥用(纵深防御)。

为每项服务设置单独的服务帐户有两个主要目的:这是一种安全措施,可在发生事件时减少一项服务(划分)的影响,并简化管理,因为可以更轻松地跟踪哪些资源属于哪些服务. 有关更多详细信息,请参阅有关相关问题的此或此答案。


Gil*_*il' 9

最初,用户旨在与使用该系统的人相对应,因此得名。每个进程作为一个特定的用户运行,每个文件都由一个特定的用户拥有。称为 root 的特殊用户用于不属于任何特定人类用户的事物,即操作系统本身。由于 root 对应于操作系统本身,因此它拥有所有权限。

很快人们发现创建多个系统用户很方便,无需大量权限。这允许隔离在机器上运行的各种服务,这样它们就不会相互影响。服务帐户(或“系统帐户”,这两个术语是同义词)是与系统上运行的服务相对应的帐户,而不是与使用系统的人相对应的帐户。对于在系统上运行的每个任务,您通常都有一个服务帐户,这些任务有自己的一组权限(例如,自己的文件、自己的网络端口等)。

没有人与系统/服务帐户的正式定义。内核并不关心(除了授予 UID 0 的用户很多权限)。大多数管理命令也不关心。一些典型的区别是:

  • 人类用户有一个真实的名字,比如“John Doe”,而系统用户有一个描述性的名字,比如“Nasal daemon”或者根本没有。
  • 人类用户有一个真正的登录 shell(例如/bin/sh或/bin/bash或/bin/csh。一些系统用户有一个 shell(几乎总是/bin/sh),其他人没有,这取决于他们的使用方式(例如su foo需要foo有一个 shell)。
  • 人类用户通常有密码——但情况并非总是如此,例如仅远程用户可能只有 SSH 密钥。请注意,在现代 unices 上,密码不在/etc/passwd其他文件中,例如/etc/shadow.
  • 人类用户的主目录通常在/home(或某些特定于站点的位置)下,而系统用户的主目录通常不在下/home并且可能不存在(但也有例外)。
  • 大多数站点为系统用户指定一个用户 ID 范围,为人类用户指定一个不相交的范围。保留 100–65533 或 500–65533 或 1000–65533 是典型的,大多数发行版都设置为从 500 或 1000 开始分配真实用户 ID。

在帐户在多台机器上共享的站点上,通常有一个中央服务器,其中包含可通过NIS或LDAP访问的用户列表。该passwd条目/etc/nsswitch.conf指定在哪里查找用户信息。系统用户在本地/etc/passwd和全网数据库中的真实用户是很常见的,但有时全网数据库中有系统用户(为了强制一致的UID,这有利于服务器和数据复制),有时还有本地文件中的人类用户(即使在网络中断时也让他们登录)。

伪装成系统用户的可人工访问的帐户通常没有真实姓名,但具有登录 shell,以及密码集或 SSH 密钥,同时具有系统范围内的用户 ID。事实上,使用一个实际的系统帐户会是一个更好的伪装,它的删除会导致某些服务停止工作。但是你不能有任何硬性规则来检测潜在的攻击:根据定义,攻击者不遵守规则。

服务帐户和人工帐户由相同的命令管理并记录在相同的文件中。帐户创建命令可以有选项来为人类和服务用户设置合理的默认值,例如在适当范围内选择用户 ID,提示人类输入密码并禁用服务的密码验证。例如,Linux 上的adduservsadduser --system或useraddvs。useradd -r