Welche Berechtigung ist erforderlich, um den Besitz einer Datei beim Kopieren beizubehalten, und wie erhält man diese?

Welche Berechtigung ist erforderlich, um den Besitz einer Datei beim Kopieren beizubehalten, und wie erhält man diese?

Ich habe eine Hausaufgabe zur Kernel-Programmierung unter Linux. Die Frage lautet:

Welches Linux-spezifische Privileg ist erforderlich, um den Besitz einer Datei beim Kopieren beizubehalten, und wie erhält man dieses Privileg?

Durch Experimente habe ich herausgefunden, dass ich ein Superuser sein muss, rootdamit dies funktioniert. Gibt es eine genauere Möglichkeit, diesen Effekt zu erklären?

Antwort1

Sehen Sie sich diecapabilities(7)Handbuchseite – Sie müssen die CAP_CHOWNMöglichkeit haben, den Dateieigentümer über zu ändern chown(). (Root hat alle Funktionen automatisch aktiviert. Auf der Handbuchseite wird erklärt, wie Sie die Funktionen in anderen Fällen erhalten.)

Es gibt keine separate Methode/Fähigkeit, um einfachbewahrenEigentumsrechte, da Dateikopien unter Linux einfach durch Lesen/Schreiben von Daten in die Zieldatei erstellt werden und dann dasselbe mit Metadaten gemacht wird. (Zum Vergleich: Windows NT hat SeBackupPrivilegeund SeRestorePrivilege-Berechtigungen und die BackupRead()/ BackupWrite()-Aufrufe.)

verwandte Informationen