
Los permisos de archivo son una parte integral de la especificación de Unix. Sin embargo, hay ciertas cosas que los usuarios principiantes a menudo desconocen, como cómo conservar los permisos de archivos en Linux mientras los copian.
Dado que los archivos copiados son esencialmente archivos nuevos, su permiso depende de la umask del usuario actual. Esto puede llevar a situaciones en las que los archivos o carpetas copiados tengan permisos completamente diferentes a los de la fuente.
Afortunadamente para usted, es fácil retener los permisos de archivos en Linux utilizando herramientas de línea de comandos estándar como cp y rsync . Consulte los ejemplos a continuación para ver cómo copiar y conservar los permisos en Linux.
Conservar los permisos de archivo mediante cp
El comando cp estándar tiene todo lo que necesita para conservar los permisos de archivo mientras realiza la copia. Puede utilizar la opción -p de cp para conservar el modo, la propiedad y las marcas de tiempo del archivo.
cp -p source-file dest-file
Sin embargo, deberá agregar la opción -r a este comando cuando trabaje con directorios. Copiará todos los subdirectorios y archivos individuales, manteniendo intactos sus permisos originales.
cp -rp source-dir/ dest-dir/
También puede utilizar la opción -a de cp para conservar los permisos de archivo. Esto habilita el modo de archivo , conservando todo, desde los permisos de archivo hasta los contextos de SELinux.
cp -a source-dir/ dest-dir/
Conservar los permisos en Linux con rsync
También puede utilizar la utilidad rsync para conservar los permisos de copia en Linux. Muchos administradores prefieren rsync sobre cp debido a su velocidad de copia más rápida. Dado que rsync solo copia la parte actualizada del archivo, son más adecuados para tareas como clonar su disco duro de Linux .
rsync -a source-dir/ dest-dir
La opción -a de rsync habilita el modo de archivo , que conserva atributos de archivo como permisos y propiedades. Puede usar la opción -v para una salida detallada y -h para ver números en un formato legible por humanos.
rsync -avh source-dir/ dest-dir
Además, tenga en cuenta la exención de la barra final ( / ) del directorio de destino. Agregar la barra final al destino hará que rsync copie los archivos en otro nivel de subdirectorio.
Verificar los permisos de archivo en Linux
Puede verificar fácilmente los permisos de archivos en Linux usando el comando getfacl (obtener listas de control de acceso a archivos). Validará si los permisos se conservaron como se esperaba.
getfacl source-file
getfacl dest-file
Fecha actualización el 2021-06-03. Fecha publicación el 2021-06-03. Categoría: linux Autor: Oscar olg Mapa del sitio Fuente: makeuseof