revisar y modificar permisos de archivos y directorios

Victor Hugo dos Santos listas.vhs en gmail.com
Lun Mar 28 12:37:20 CLST 2011


Hola,

tengo el siguiente problema...
necesito revisar los permisos de ciertos directorios y archivos y en
caso de estar erróneos, modificarlos.
la estructura de directorios que tengo es parecida a esta:

=========================
/home/*/archivos/directorio1
/home/*/archivos/directorio2/archivo1
/home/*/archivos/directorio2/archivo2
/home/*/archivos/directorio2/archivo3
/home/*/archivos/directorio2/archivo4
/home/*/archivos/directorio3/archivo1

/home/*/archivos/publico/archivo1
/home/*/archivos/publico/pdf/archivo1
/home/*/archivos/publico/pdf/archivo2
/home/*/archivos/publico/image/archivo1
/home/*/archivos/publico/image/archivo2

/home/*/archivos/directorio3/pdf/archivo1
/home/*/archivos/directorio3/pdf/archivo2
=========================

- todos los directorios deben de tener permisos 750
- todos los archivos deben de tener permisos 640
- excepto los directorios y subdirectorios que están en
/home/*/archivos/publico/ que deben de tener permisos 770 y los
archivos dentro de estés directorios con permisos 660

a principio estaba utilizando find para revisar y modificar los
permisos, por ejemplo

find /home -type d -not -name publico -perm 750  -exec chmod 750 {} \;
find /home -type d -name publico -not -perm 775  -exec chmod 775 {} \;

pero luego, me di cuenta de que esto no funcionaba bien, por el tema
de los subdirectorios (pdf/image) dentro de publico..
podría modificar la linea de arriba para algo semejante a esto:

find /home -type d -not -name publico -not -name pdf -not -name image
-perm 750  -exec chmod 750 {} \;
find /home -type d -name publico -name pdf -name image -not -perm 775
-exec chmod 775 {} \;

pero luego, me enredo aun mas, al ver que existen directorios con
nombres "pdf" y "image" dentro de otros subdirectorios (que no es
publico) que deben de tener permisos 750 !!! :-(

imagino que podría hacer un bucle que entrara en cada uno de los
directorios principales y buscara la ruta de upload/image/pdf usando
-maxdepth o -mindepth !!!
pero antes de complicar mas la cosa, pregunto si alguno de ustedes
tiene alguna idea/solución mas simples para esto ?

salu2 y atetno

-- 
--
Victor Hugo dos Santos
Linux Counter #224399


Más información sobre la lista de distribución Linux