¿Cómo funcionan los permisos de las carpetas anidadas?

3

1) No estoy seguro de cómo funcionan los permisos de directorio anidados.

Supongamos que tengo los siguientes directorios / archivos y permisos:

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

¿Public es realmente público?

2) Si quiero hacer que Private sea realmente privado, ¿importa si uso -R cuando hago 'chmod 700'?

3) He leído que Ubuntu usa una carpeta de inicio legible por palabra de forma predeterminada, y se niega a arreglarlo. Pero cuando hago 'ls -lh' obtengo esto: drwx ------ (700, ¿verdad?). Entonces, ¿cuál es? ¿Han cambiado de opinión sobre la carpeta de inicio?

Nota: estoy en una máquina virtual Ubuntu 12

HappyDeveloper
fuente
1 y 2: Pruébalo. Tienes las herramientas frente a ti. 3: Eso no es lo que veo en un par de instalaciones de Ubuntu aquí.
Daniel Andersson
@DanielAndersson Lo intenté antes de escribir la pregunta (y no pude acceder a Public), pero algunas cosas no tenían mucho sentido. Por ejemplo, recuerdo que en CentOS tuve que usar chmod 700 .ssh antes de poder usarlo. Pero, ¿por qué necesitaría hacer eso si ~ / ya tenía 700? No puedo dejar esto al azar, por eso lo pregunto aquí.
HappyDeveloper
@DanielAndersson 3: ¿Qué es lo que no ves? 700 o 755? Durante la instalación, he elegido encriptar el disco y el hogar, ¿tal vez eso cambió los permisos?
HappyDeveloper
1
Los directorios principales que veo en las diferentes instalaciones de Ubuntu son todos 755.
Daniel Andersson

Respuestas:

3
~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

Un usuario que no es el propietario ~/Private/y ~/Private/Groupque no podrá acceder a la carpeta pública con estos permisos.

En Unix / Linux debe agregar el bit de ejecución para que un usuario pueda atravesar (cambiar a través de) un directorio. Pero no necesita otorgar acceso de lectura. Intenta esto en su lugar. Pero tenga en cuenta que el usuario debe saber que existen los directorios Grupo y Público, no habrá forma de que lo usen lspara ver si existen a menos que también se les otorgue acceso de lectura.

~/Private/ 711
~/Private/Group 771
~/Private/Group/Public 777

¿Importa si uso -R cuando hago 'chmod 700'

Si ejecuta ese comando, va a cambiar los permisos de cada archivo en un directorio debajo del directorio al que se dirige, si tiene algo con permisos diferentes, se perderán. Sospecho que también agregarías el bit de ejecución a muchos archivos normales, lo que generalmente no es deseable.

Es posible que desee utilizar un comando como este en su lugar. Esto solo cambiará los permisos en el directorio y los subdirectorios, sin cambiar los permisos en los archivos.

find {directory_path} -type d -print0 | xargs --null -n 1 chmod 0700

Un comando similar para cambiar solo los archivos se vería así.

find {directory_path} -type f -print0 | xargs --null -n 1 chmod 0600
Zoredache
fuente
En cuanto al punto 3, agregue un nuevo usuario y vea qué sucede.
Zoredache
Perfecto gracias. Solo una corrección: "habrá forma" -> "no habrá forma"
HappyDeveloper