Hacer que todas las carpetas no sean legibles para "otros", pero manteniendo su estado original con respecto a "escribir" y "ejecutar".

Hacer que todas las carpetas no sean legibles para "otros", pero manteniendo su estado original con respecto a "escribir" y "ejecutar".

TLDR: ¿Cómo puedo cambiar los permisos de todas las carpetas en la computadora de modo que, para "otros", las carpetas solo pierdan legibilidad? En otras palabras, ¿mantienen su estado con respecto a "escribir" y "ejecutar", pero pierden la posibilidad de "leer" en caso de que la tuvieran en primer lugar?

Versión larga: Al configurar un servidor (donde los usuarios pueden acceder mediante SSH) por primera vez, mi primera inclinación fue tratar de descubrir cómo se podían crear nuevos usuarios a los que se les permitiera acceder solo a sus propias home/usernamecarpetas y subcarpetas.

Sin embargo, encontré algunas referencias (por ejemploesta pregunta/respuesta) en línea explicando que quizás eso no sería una buena idea porque los usuarios, por supuesto, aún necesitarían acceder a algunas carpetas del sistema como usr/bino usr/liby escribir en carpetas como tmp. Por supuesto, tiene sentido. Entonces, lo que he intentado lograr es que los usuarios puedanusar¿Qué hay en las carpetas del sistema pero no?versu contenido.

Más específicamente, eso significaría configurar todas las carpetas del sistema para que no sean legibles para "otros" y al mismo tiempo mantener su estado original para "otros" con respecto a la capacidad de escritura y ejecución. Por ejemplo, una carpeta con permiso 754se convertiría en , 750una carpeta con 756se convertiría en 752, una carpeta con 755se convertiría en 751, etc, mientras que una carpeta con 753, 752o permanecería igual. Así sucesivamente.751750

De esta manera, nadie más que la raíz podría ver lo que hay dentro de cualquier carpeta además de su home/usernamecarpeta y subcarpetas, pero aún podría ejecutar y escribir normalmente en todas las carpetas del sistema que originalmente lo permitían.

¿Cómo podría hacer eso para todas las carpetas? Por supuesto, también son bienvenidos los comentarios sobre los posibles fallos de esta idea.

Respuesta1

find /path/to/directory/ -type d -exec chmod o-r {} \;

Deberia trabajar. Para cada carpeta, findejecuta chmod. chmodluego elimina el bit de lectura para otros.

Respuesta2

Sólo los objetos binarios abiertos por el propio kernel pueden marcarse como ejecutables pero no legibles. Cualquier tipo de script (bash, python, etc.) deberá leerse primero antes de ejecutarse. Ver:

información relacionada