当挂载外部文件系统时,Ubuntu 如何匹配用户?

当挂载外部文件系统时,Ubuntu 如何匹配用户?

如果我挂载了另一个 Ubuntu 安装(我们称之为系统 B)的文件系统,我的系统(系统 A)如何计算权限?具体来说:

  • 我系统上的用户 A 是否能从系统 B 访问外部文件系统中用户 A 的文件,仅仅因为它们具有相同的名称?密码必须匹配吗?对我来说,这意味着文件系统必须将用户 + 密码一起存储在某个地方,以便它们可以随文件系统一起移动。
  • 如果系统 B 上有用户 B,而我的系统上没有匹配的用户,会发生什么情况?谁可以从系统 A 访问他的文件?root 可以吗?

答案1

权限是根据 /etc/password 中的用户 ID 授予的。名称只是为了方便。(顺便说一句,这也是在 Windows 上的做法)。

例子:

本地系统“A”有一个具有以下设置的磁盘:

Joe,用户 500
Jane,用户 ID 501
作业,uid 502

Joe 创建的文件的用户 ID 为 500。

现在我将该磁盘移至系统“B”系统 B 有两个用户:

Janette,用户 ID 500
slartibartfast,用户 ID 501
马克,用户 ID 599

系统“A”上用户 500 (Joe) 拥有的文件现在可由系统“B”上的用户 500 访问。所有者将列为“Janette”

这就是人们在所有登录的系统上都保持相同 UID 的主要原因。特别是当涉及 NFS 时。


(完整的内容:'Jane' 拥有的文件现在将显示为 'slartibartfast' 拥有,而 'Job' 拥有的文件将仅按 ID 502 列出,因为没有匹配的名称。)

如果你喜欢类比,可以将 uid 视为社会保障号码。你的名字可以改变(例如当你结婚时),但该号码将始终保持不变。


[略作编辑以直接回答问题]

如果我挂载了另一个 Ubuntu 安装(我们称之为 systemB)的文件系统,我的系统(systemA)如何计算权限?

系统通过检查活动用户是否对文件具有权限,或者活动用户是否属于对该文件具有权限的组来确定权限。我写到活动用户的所有地方,您都需要意识到用户只是一个数字。(ID)。这会忽略 SE-Linux 设置的额外限制。

具体来说:我的系统上的用户 A 是否可以从系统 B 访问外部文件系统中用户 A 的文件,仅仅因为它们具有相同的名称?

不可以,只有当它们有相同的 uid 时才可以。

密码必须匹配吗?

访问文件时无需密码检查。您只需进行一次身份验证(登录时)。之后,您便拥有您拥有的文件或与您属于同一组的文件的权限。

对我来说,这意味着文件系统必须将用户和密码一起存储在某个地方,以便它们可以随文件系统一起传输。

访问文件时不进行密码检查,因此这无关紧要。

如果系统 B 上有用户 B 而我的系统上没有匹配的用户,会发生什么情况?

如果没有具有相同 uid 的用户,则无法将 uid 转换为名称。因此显示原始数值。

谁可以从系统 A 访问他的文件?可以 root 吗?

每个具有相同 uid 或 uid 0 的用户。

相关内容