保留副本文件的所有权需要什么特权以及如何获得该特权?

保留副本文件的所有权需要什么特权以及如何获得该特权?

我有一个关于 Linux 内核编程的家庭作业问题。问题是:

复制文件时,需要什么 Linux 特定权限来保留文件所有权,以及如何获取该权限?

通过实验,我发现我需要成为root超级用户才能使其正常工作。有没有更具体的方式来解释这种效果?

答案1

查看capabilities(7)手册页 – 您需要CAP_CHOWN通过 更改文件所有权的能力chown()。(Root 已自动启用所有能力。手册页解释了如何在其他情况下获取能力。)

没有单独的方法/能力来保存所有权,因为 Linux 文件复制只需将数据读取/写入目标文件,然后对元数据执行相同操作即可。(相比之下,Windows NT 具有SeBackupPrivilegeSeRestorePrivilege权限以及BackupRead()/BackupWrite()调用。)

相关内容