文件权限如何存储在 inode 中?

文件权限如何存储在 inode 中?

假设有两台电脑 - “A” 和 “B”。那么如果 A 从 B 下载一个文件,那么该下载文件的文件权限是什么?A 中下载的文件是否有可能具有一个 Inode 条目,其中包含来自 B 的所有权限,并将 B 的用户帐户存储为所有者?如果是这样,那么如果“其他人” [如用户组其他人] 无权写入该文件,是否不可能在 A 上更改该文件的权限?

例如,如果是这种情况,__x __x __x file.txt [在 B 上]

那么从 B 下载的同一个文件在 A 上的文件权限是什么(例如通过 vsftpd)?

  1. __x __x __x 文件.txt [在 A 上]

或者

  1. rw_x rw_x rw_x file.txt [在 A 上] [即由 A 的默认 umask 值定义]

答案1

下载的文件将具有取决于系统 A 设置 (umask) 的权限。基本上,在复制文件时,该文件属于 A 上的用户。更准确地说,文件中的数据被传输到系统 A 上的 ftp 客户端。只有数据,而不是包含访问权限、所有权、创建/访问/修改日期……和其他内容的元数据(在 Inode 中)。我可以通过 ftp 下载文件并将其存储在非 unix 文件系统 (FAT) 上,例如,该系统没有或具有完全不同的安全机制。

所以基本上,就你的情况而言,ftp 协议就是问题所在。

如果您还想转移所有权信息,您可以使用tar例如存档包含(几乎)所有元数据的文件。然后将存档转移到 A 并使用适当的选项提取它以保留原始所有权。

相关内容