Unix 如何实现文件权限?

Aas*_*del 8 linux filesystems permissions

foo.txt在一个 Linux 发行版中有一个以 root 权限命名的文本文件。我将它复制到另一台计算机上的另一个 Linux 发行版。

文件权限还会保留foo.txt吗?

如果是,Unix/Linux linux 怎么知道,并复制文件的权限?

它是否向文件添加了额外的字节(表示权限)?

Whi*_*bat 12

添加 Eric 的答案(没有代表评论),权限不存储在文件中,而是文件的inode(文件系统指向文件在磁盘上的物理位置的指针)作为元数据以及所有者和时间戳。这意味着将文件复制到非 POSIX 文件系统(如 NTFS 或 FAT)将删除权限和所有者数据。

文件所有者和组只是一对数字,分别是用户 ID (UID) 和组 ID (GID)。根 UID 作为标准为 0,因此文件将在(几乎)每个兼容 unix 的系统上显示为根拥有。另一方面,非 root 所有者不会以有意义的方式保存。

因此,简而言之,如果通过 extX usbstick 或类似方式进行压缩或复制,将保留根所有权。非 root 所有权是不可靠的。