¿Cuál es la diferencia entre 'ls' y 'ls -l' cuando no tengo permiso de ejecución en ese directorio?

11

Creé un directorio llamado foldery quité el permiso de ejecución.

$ mkdir folder
$ touch folder/innerFile
$ mkdir folder/innerFolder
$ chmod -x folder

Ahora si lo hago

$ ls folder

genera una lista de archivos, pero cuando lo hago

$ ls -l folder

yo obtengo

ls: innerFile: Permission denied
ls: innerFolder: Permission denied

¿Porqué es eso?

Shnd
fuente
44
Mira esta respuesta. Tiene respuestas a tu pregunta.
Ramesh
2
"¿Cuál es la diferencia entre 'ls' y 'ls -l' cuando no tengo permiso de ejecución en ese directorio?" Básicamente, es la misma que la diferencia entre 'ls' y 'ls -l' cuando no tengan permiso de ejecución en el directorio.
G-Man dice 'Restablecer a Monica' el

Respuestas:

18

ls -len una carpeta intenta statsu contenido, lspero no:

$ strace ls folder -l
...
lstat("folder/innerFolder", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
getxattr("folder/innerFolder", "system.posix_acl_access", 0x0, 0) = -1 ENODATA (No data available)
getxattr("folder/innerFolder", "system.posix_acl_default", 0x0, 0) = -1 ENODATA (No data available)
lstat("folder/innerFile", {st_mode=S_IFDIR|0755, st_size=40, ...}) = 0
getxattr("folder/innerFile", "system.posix_acl_access", 0x0, 0) = -1 ENODATA (No data available)
getxattr("folder/innerFile", "system.posix_acl_default", 0x0, 0) = -1 ENODATA (No data available)
...

Es por eso que obtienes un "permiso denegado" con ls -ly no con ls.

muru
fuente