Necesito establecer permisos de lectura y escritura para el rootusuario al directorio subfolderNy todas sus carpetas principales hasta root.
Puedo hacerlo a mano:
$ sudo chmod +rx /root/subfolder1/subfolder2/subfolderN
$ sudo chmod +rx /root/subfolder1/subfolder2
$ sudo chmod +rx /root/subfolder1
$ sudo chmod +rx /root
Pero si Nes grande estoy cansado. ¿Cómo hacer automáticamente por un comando?
permissions
directory
Maxim Yefremov
fuente
fuente

/rootmundo sea legible.Respuestas:
Esto se puede hacer fácilmente en el shell, comenzando en el subdirectorio y subiendo:
Esto comienza con cualquier archivo / directorio que establezca f también, y funciona en cada directorio padre, hasta que encuentre "/" (o lo que establezca la cadena en la condición del bucle). No chmod "/".
fuente
fpasa si es un camino relativo y quiero detenerme en lo que es relativo en lugar de/?$fes asífoo/bar, ¿$falguna vez cambiará a.? Si lodirnamehace GraciasCon
csh,tcsh,ksh,zsh,bash,fishoyash -o braceexpand:Con
zsh:O podría definir una función de calificador global como:
Para ser utilizado por ejemplo como:
Tenga en cuenta que
chmod +rxse ve afectado por la umask. Si suumaskno incluye007, haría que el/rootdirectorio sea legible y accesible en todo el mundo, lo cual es una mala idea./rootes típicamente para las cosas privadas del superusuario, es una mala idea exponerlo.fuente
,en{,/subfolder}sí?/subfolder; así/root{,/subfolder}produce/rooty/root/subfoldershBueno, podrías hacer algo un poco más complejo como:
Para ver qué hará esto, reemplace la
chmodllamada con print:fuente
No sé qué estás tratando de hacer, pero es mejor que no tomes el recursivo a la ligera . Dicho esto, lea la respuesta real:
Umm ... ¿por qué no usar recursivo?
O si no te gusta, puedes dar
chmodvarios directorios:fuente
chmod -R /rootcambia todo debajo/root, incluidos los archivos normales y todos los directorios. La pregunta es sobre cambiar solo una cadena de directorios.