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
¿Es público realmente público?
2) Si quiero que Privado sea realmente privado, ¿importa si uso -R cuando hago 'chmod 700'?
3) He leído que Ubuntu usa una carpeta de inicio legible por Word de forma predeterminada y se niega a arreglarla. Pero cuando hago 'ls -lh' me sale 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
Respuesta1
~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777
Un usuario que no es propietario de ~/Private/
y ~/Private/Group
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 hacia o a través de) un directorio. Pero no es necesario otorgar acceso de lectura. Así que prueba esto en su lugar. Pero tenga en cuenta que el usuario debe saber que los directorios de grupo y público existen; no habrá forma de que los utilice ls
para ver si existen a menos que también se le conceda acceso de lectura.
~/Private/ 711
~/Private/Group 771
~/Private/Group/Public 777
¿Importa si uso -R cuando hago 'chmod 700'?
Si ejecuta ese comando, cambiará los permisos de cada archivo en un directorio debajo del directorio de destino; 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 cual 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 sólo los archivos se vería así.
find {directory_path} -type f -print0 | xargs --null -n 1 chmod 0600