如果我挂载了另一个 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 的用户。