Was ist der Unterschied zwischen 'ls' und 'ls -l', wenn ich keine Ausführungsberechtigung für dieses Verzeichnis habe?

11

Ich habe ein Verzeichnis namens erstellt folderund die Ausführungsberechtigung weggenommen.

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

Wenn ich es jetzt tue

$ ls folder

Es gibt eine Liste von Dateien aus, aber wenn ich es tue

$ ls -l folder

Ich bekomme

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

Warum das?

Shnd
quelle
4
Überprüfen Sie diese Antwort. Es hat Antworten auf Ihre Frage.
Ramesh
2
"Was ist der Unterschied zwischen 'ls' und 'ls -l', wenn ich keine Ausführungsberechtigung für dieses Verzeichnis habe?" Grundsätzlich entspricht dies dem Unterschied zwischen 'ls' und 'ls -l', wenn Sie über eine Ausführungsberechtigung für das Verzeichnis verfügen.
G-Man sagt "Reinstate Monica"

Antworten:

18

ls -lauf einem Ordner versucht zu statseinem Inhalt, während lsnicht:

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

Deshalb erhalten Sie eine "Erlaubnis verweigert" mit ls -lund nicht mit ls.

muru
quelle