Qual è la differenza tra 'ls' e 'ls -l' quando non ho i permessi di esecuzione su quella directory?


11

Ho creato una directory chiamata foldere ho tolto il permesso di esecuzione.

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

Ora se lo faccio

$ ls folder

produce un elenco di file, ma quando lo faccio

$ ls -l folder

ottengo

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

Perché?


4
Controlla questa risposta. Ha le risposte alla tua domanda.
Ramesh,

2
"Qual è la differenza tra 'ls' e 'ls -l' quando non ho i permessi di esecuzione su quella directory?" In sostanza, è la stessa come la differenza tra 'ls' e 'ls -l' quando si fa dispone dell'autorizzazione esecuzione sulla directory.
G-Man dice "Ripristina Monica" il

Risposte:


18

ls -lsu una cartella cerca il statsuo contenuto, mentre lsnon:

$ 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)
...

Ecco perché ricevi un "permesso negato" con ls -le non con ls.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.