Tengo una pregunta sobre la programación del kernel en Linux. La pregunta es:
¿Qué privilegio específico de Linux se requiere para preservar la propiedad de un archivo cuando se copia y cómo se obtiene?
A través de la experimentación, descubrí que necesito ser root
superusuario para que esto funcione. ¿Existe una forma más específica de explicar este efecto?
Respuesta1
Ver elcapabilities(7)
página del manual: necesita la CAP_CHOWN
capacidad de cambiar la propiedad del archivo a través de chown()
. (Root tiene todas las capacidades habilitadas automáticamente. La página del manual explica cómo obtener capacidades en otros casos).
No existe ningún método/capacidad separado para simplementepreservarpropiedad, ya que las copias de archivos de Linux se realizan simplemente leyendo/escribiendo datos en el archivo de destino y luego haciendo lo mismo con los metadatos. (A modo de comparación, Windows NT tiene privilegios SeBackupPrivilege
y SeRestorePrivilege
y llamadas BackupRead()
/ BackupWrite()
.)