tengo un árbol de archivos con permisos correctos. entonces tengo una (filewise) idénticos árbol (con diferente contenido de los archivos duros) con permisos incorrectos.
¿cómo puedo transferir los permisos de diseño de un árbol a otro?
tengo un árbol de archivos con permisos correctos. entonces tengo una (filewise) idénticos árbol (con diferente contenido de los archivos duros) con permisos incorrectos.
¿cómo puedo transferir los permisos de diseño de un árbol a otro?
Me acabo de enterar de una nueva y sencilla manera de lograr esto:
getfacl -R /path/to/source > /root/perms.ac
Esto generará una lista con todos los permisos y propiedad.
A continuación, vaya a un nivel por encima de la de destino y restaurar los permisos con
setfacl --restore=/root/perms.acl
La razón que usted tiene que ser un nivel por encima es que todos los caminos en permanentes.acl son relativos.
Debe hacerse como root.
Una cosa que usted podría hacer es usar el encontrar el comando para generar un script con los comandos que necesita para copia de los permisos. Aquí está un ejemplo rápido, usted podría hacer mucho más con los diversos printf opciones, incluyendo obtener el propietario, el id de grupo, y así sucesivamente.
$ find /var/log -type d -printf "chmod %m %p \n" > reset_perms
$ cat reset_perms
chmod 755 /var/log
chmod 755 /var/log/apt
chmod 750 /var/log/apache2
chmod 755 /var/log/fsck
chmod 755 /var/log/gdm
chmod 755 /var/log/cups
chmod 2750 /var/log/exim4
...
Se puede hacer con la siguiente línea de shell:
D1=foo; D2=foo2; for entry in $(find $D1 -exec stat -f "%N:%Mp%Lp" {} \;); do $(echo $entry | sed 's#'$D1'#'$D2'#' | awk -F: '{printf ("chmod %s %s\n", $2, $1)}') ; done
simplemente el valor correcto para D1 y D2 variables, el punto que el origen y el destino de los directorios, ejecutar y los directorios tienen permisos en modo de sincronización.
EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.