如何在 UNIX 中使用安全复制保存所有权

How to save the ownership with Secure Copy in UNIX

我想知道是否有一种方法可以递归地保护副本并保留所有权。我尝试了以下方法:

    sudo scp -rp [local server directory] username@remoteserver[remote server directory]
    rsync -av /local/dir server:/remote/dir

他们都无法保留所有权。文件所有者是 jboss,但是当我安全复制时,用户自动成为远程服务器上的所有者。

这可能是不可能的。首先,考虑远程服务器上可能不存在本地用户"jboss"。或者,如果远程服务器上存在用户 "jboss" ,则无法保证本地用户 "jboss" 的 UID 与远程的 UID 相同用户 "jboss"(请记住,Unix 所有权始终以 ID 而非名称表示;ls 等工具会根据 /etc/passwd/etc/group 文件,但对于 filesystem/kernel,相关的是 ID,而不是名称。

接下来,考虑保留远程服务器上的本地所有权在该远程服务器上有效 "giving a file away",这是 Unix 通常不允许的;请参阅 this Unix StackExchange post 以获得关于为什么会这样的很好的讨论。

希望对您有所帮助!