文件所有权在不同系统之间有何影响?

文件所有权在不同系统之间有何影响?

据我了解Unix文件系统,Unix系统上的任何文件都必须属于该系统的组和用户。文件不能属于系统上不存在的组或用户。

根据这个假设,我想到了一些问题。当媒体在计算机之间传输时(无论是通过闪存驱动器、CDROM 还是网络共享),组和用户属性会发生什么情况。该文件在新系统中属于谁?

你能限制数据只在你的系统上工作吗? (这里不讨论加密,只是基础知识。)

另外,当您在两台计算机之间传输数据时,是否有办法确保组和用户属性保持不变(属于root的内容在新系统上将属于root,与普通用户相同)。

答案1

在所有本机 UNIX 文件系统上,文件所有权以用户 ID 和组 ID 的形式存储。对于基本 NFS 操作(尽管至少在 NFSv4 中还有其他可能性)和传统的 UNIX 归档格式(例如 tar)也是如此。

文件实际上可以属于不存在的用户或组。该文件属于特定 ID,但没有义务将该 ID 列在/etc/passwd其他用户或组数据库中。例如,如果您将用户数据库存储在 NIS 或 LDAP 上,并且数据库服务器暂时无法访问,则用户的文件仍然存在。

当您将可移动介质从一个系统传送到另一个系统时,您应该确保用户和组 ID 在相关位置匹配,或者忽略所有权(例如,通过使用非 UNIX 文件系统)。 Root 有点特殊,因为它的定义特征是用户 ID 到处都是 0。

控制实际拥有媒体的人对数据执行的操作的唯一方法是使用内在的保护手段,即不依赖于他们访问系统的方式并保留某些内容的保护手段。您可以使用数学保护手段:密码术(加密以确保机密性,签名以保证完整性;密码由您自己保管)或物理保护手段(例如上锁的盒子)。

答案2

大多数 Unix 文件系统中的每个文件和目录都有一个关联的数字组和用户 ID。然后是 id 到名称的映射(对于用户为 /etc/passwd,对于组为 /etc/group)。当您将文件传输到另一个系统时,数字 ID 保持不变。新系统上可能不存在具有该 ID 的名称。因此,如果您执行 a ls -l,您将看到数字而不是用户名。

root 用户的用户 ID 始终为 0,因此每个系统上的用户 ID 都是相同的。如果您打算经常移动文件,则应确保两个系统之间的公共用户具有相同的用户 ID。

相关内容