Establecer permisos de navegación globales para subdirectorios (rx) pero hacer que los archivos sean inaccesibles para todos excepto para el propietario y los miembros del grupo.

Establecer permisos de navegación globales para subdirectorios (rx) pero hacer que los archivos sean inaccesibles para todos excepto para el propietario y los miembros del grupo.

Normalmente tengo un directorio donde quiero que todos los usuarios puedan navegar, pero los archivos no se pueden leer ni ejecutar.

Veo algunas preguntas relacionadas que no coinciden exactamente con lo que quiero:

  • Esta preguntaesta usando umask. No aplica porque estos archivos ya están creados.

  • Esta preguntaestá utilizando ACL. Sin embargo, aquí quiero usar permisos de UNIX.

Normalmente uso un findcomando pero soy consciente de que tiene algunas debilidades. Lo publicaré como una posible respuesta en un momento junto con por qué creo que puede haber una mejor manera.

Respuesta1

Normalmente uso lo siguiente:

find . -type f -print0 | xargs -0 sudo chmod 440
find . -type d -print0 | xargs -0 sudo chmod 555

Sin embargo, eso no tiene en cuenta los ejecutables. Estaba pensando en hacer algo como esto para los archivos:

find . -type f -print0 | xargs -0 sudo chmod ug+r ug-w o-rwx

Pero siguen siendo dos comandos y no estoy seguro de si esta es la mejor manera. Quizás alguien tenga una propuesta mejor.

Respuesta2

Bueno, simplemente no establezcas los mismos permisos en el directorio y los archivos que contiene:

$ chmod g+rx directory/
$ chmod g= directory/*

Aquí, los miembros del grupo pueden ingresar y explorar el directorio, pero no podrán leer los archivos que contiene.

Editar: con respecto a su nuevo título, sugeriría:

$ chmod a+rx directory/
$ chmod u=rwX,g=rX,o= *

Respuesta3

Para directorios y archivos ya creados:

buscar /directorio_inicio -tipo d -exec chmod 755 {} \;

buscar /directorio_inicio -tipo f -exec chmod 660 {} \;

Si sus usuarios deberían poder crear nuevos archivos y/o subdirectorios, brinde más detalles porque la solución depende de los requisitos exactos.

información relacionada