Cuando se utiliza la utilidad tar para almacenar archivos en copias de seguridad, se pierden las ACL extendidas.
¿Existe alguna solución comúnmente utilizada y no hack (como: crear un script que recree las ACL desde cero) para preservar las ACL?
Cuando se utiliza la utilidad tar para almacenar archivos en copias de seguridad, se pierden las ACL extendidas.
¿Existe alguna solución comúnmente utilizada y no hack (como: crear un script que recree las ACL desde cero) para preservar las ACL?
Respuestas:
Usando alquitrán
Crear:
tar --acls -cpf backup.tar some-dir-or-file
Para descomprimir:
tar --acls -xpf backup.tar
tar: unrecognized option '--acls'
No funciona.
--acls
tar
no es compatible --acls
hasta Jessie. (Ver error # 732071. ) La función también está disponible en el paquete de wheezy-backports
.
En realidad, creo que la pregunta no se refería a los bits de permiso de archivo (estándar), sino a la información extendida de ACL (consulte setfacl (1) o acl (5)).
Que yo sepa, el tar de GNU no modificado ignora la información de ACL. (La página de manual para GNU tar 1.15.1 como se envía con RHEL 5.2 menciona los interruptores --acls y --no-acls, pero no los he puesto a funcionar).
Sin embargo, el programa estrella puede realizar copias de seguridad y restaurar ACL, si selecciona el formato exustar :
star -c -p -acl artype=exustar -f archive.tar files...
star -x -acl -f archive.tar
Página de inicio de Star: http://cdrecord.berlios.de/new/private/star.html Star está disponible en ubuntu, al menos.
star
no está disponible en Debian y no parece ser mantenido por un "equipo". Sin embargo, el proyecto sigue vivo y mantenido después de más de 30 años. Prueba bsdtar
si quieres algo más.
Estoy buscando una solución también hasta ahora encontré esto:
primero hago un getfactl de mi carpeta
getfacl -R /a_folder > folder.acl
luego haz un alquitrán regular
tar -czvf folder.tar.gz /a_folder
cuando lo extraigo
tar -xvf folder.tar.gz
hacer un setfacl para los permisos.
setfacl --restore=folder.acl
esto funciona para mi
Si está buscando una solución fácil de usar pero potente, se la recomiendo rdiff-backup
.
Básicamente, hace una copia de un directorio de origen en un directorio de destino, pero también guarda información adicional para que pueda retroceder en el tiempo cuando lo desee.
Y, por supuesto, conserva enlaces simbólicos, archivos especiales, enlaces duros, permisos, propiedad uid / gid y tiempos de modificación.
Te sugiero que uses bsdtar
.
bsdtar
copias de seguridad extendidos ACL por defecto , utiliza la misma sintaxis como GNU tar
, y los archivos que produce son legibles GNU tar
.
El paquete y el nombre del comando (bajo distribuciones basadas en Debian) es bsdtar
.
bsdtar cf archive.tar /my/folder/using/extd_acl
bsdtar xf archive.tar
El segundo comando (extraer) restaura las ACL.
De la página del manual de alquitrán.
-p, --same-permissions, --preserve-permissions
ignora umask al extraer archivos (el valor predeterminado para root)
En realidad, no es el acto de archivar lo que altera los permisos de acceso (ACL), sino el acto de desempaquetarlos. Tar se usa con mucha frecuencia para distribuir archivos de un usuario a otro, por lo que se considera conveniente aplicar una máscara de usuario cuando desempaquetan.
Para preservar los permisos anteriores de los archivos, simplemente ad ap para sus opciones. Por ejemplo
Alquitrán recto:
tar xvp some-file
bz.tar:
tar xvjp some-file
gz.tar:
tar xvzp some-file