
¿Qué permiso debo aplicar a una carpeta para que todos puedan ver la jerarquía y todos los archivos que contiene, pero no puedan leerlos ni escribirlos? La carpeta puede tener varias otras carpetas con archivos dentro.
Respuesta1
Listar directorios utiliza el bit ejecutable, no creo que la lectura realmente afecte a los directorios en absoluto. Tendrá que establecer permisos en cada archivo individual para evitar que se lean o escriban en ellos. Los siguientes comandos harán todo esto por usted, ejecútelos desde la carpeta donde desea que comience:
find . -type d | xargs chmod o=rx
find . -type f | xargs chmod o=
find
buscará recursivamente archivos ( -type f
) y directorios ( -type d
) e imprimirá sus nombres (sin otra acción especificada), y esto se canalizará a xargs
, que ejecuta sus argumentos con los archivos que lee del canal. chmod
cambia los permisos para otros ( o
, es decir, ni usted ni otros miembros del grupo que poseen el archivo) a exactamente ( =
) lectura/lista ( rx
) para carpetas y nada para archivos simples.
Como señaló grumbel en un comentario, esto solo funcionará con nombres que se porten bien. Para obtenerlos todos, use su solución:
find . -type d -print0 | xargs -0 chmod o=rx
find . -type f -print0 | xargs -0 chmod o=
o buscar incorporado -exec
:
find . -type d -exec chmod o=rx '{}' ';'
find . -type f -exec chmod o= \{\} \;
Tenga en cuenta que puede citar las llaves y el punto y coma como en la primera línea, o escaparlos como en la segunda, solo tienen que estar ahí en argumentos separados. Además, -exec
ejecutará chmod una vez para cada archivo, mientras que xargs lo hará con la menor cantidad de comandos posible (según la longitud máxima de la línea de comando). Por eso generalmente prefiero xargs.
Respuesta2
sudo chown -R username:root "/directory you want"
-R
representa la recursividad para todos sus subdirectorios y archivos.
nombre de usuario- usuario actual
Es útil para permisos de lectura/escritura/ejecución.