Answers:
tar
根据UID和GID而不是与它们关联的字符串记录权限。因此,如果一台服务器上的UID是3300并且链接到“ bob”,则在新服务器上,该文件将归拥有UID 3300的用户所有。
UNIX上的虚拟所有内容(我想说的都是一切,但您永远不能百分百确定)都使用UID:GID值,因为这实际上是存储在文件系统级别的内容。名称只是在passwd文件中的简单查找,使用数字值进行基础检查。
tar
做记录拥有者的名字。
总结以前的答案并添加一些重要信息:
创建档案时,除非使用,另行说明tar
,否则将始终保留文件的用户名和组ID 。但是仍然始终会有与每个文件关联的用户和组。--owner=NAME
--group=NAME
除非使用了GNU tar,也许还有其他版本的tar
,也会存储用户名和组名--numeric-owner
。让bsdtar也默认存储用户和组名,但支持--numeric-owner
选项时创建为止,未发现的bsdtar 3.0(请注意,让bsdtar支持的选项提取更长的时间)。
以普通用户身份提取文件时,所有文件将始终归该用户所有。并没有什么不同,因为解压缩文件是在文件系统上创建一个新文件,并且普通用户无法创建文件并将所有权授予他人。
当作为提取根,tar
会默认恢复解压缩文件的所有权,除非 --no-same-owner
被使用,这将给所有权根自己。
在GNU tar,bsdtar以及可能的其他版本中tar
,如果该信息在归档文件中并且目标系统中有匹配的用户,则还原的所有权由用户(和组)名称完成。否则,它将按ID恢复。如果提供了选项,则将忽略用户名和组名。--numeric-owner
权限和时间戳也会保存到存档中,并且默认情况下会还原,除非使用选项--no-same-permissions
和/或--touch
。当由用户萃取,用户的umask
被减去,除非从权限--same-permissions
被使用。
--preserve-permissions
和--same-permissions
是别名,并且具有与-p
希望这有助于澄清问题!:)
tar
允许在--owner
或中指定任意名称,--group
过去tar
在当前计算机上进行了无偿查找,/etc/passwd
并且如果没有匹配项,则拒绝运行。
--owner
同时又添加到--numeric-owner
标志中,该怎么办?tar如何处理这些相互竞争的需求?
--owner
和--numeric-owner
并不互斥,并且具有非常不同的用途:--owner=USERNAME
在归档文件时将覆盖文件和目录所有者,而--numeric-owner
不会仅存储用户名,而不会存储用户名。
在GNU tar中使用--same-owner选项。参见http://www.gnu.org/software/tar/manual/html_section/Attributes.html
如果您试图在两个系统之间传输文件,则rsync默认情况下将通过用户名而不是uid来设置权限,同时查看两端的用户名。仅当用户不存在于其中一个系统上时,它才会使用uid复制它,除非您另有说明。