해당 디렉토리에 대한 실행 권한이없는 경우 'ls'와 'ls -l'의 차이점은 무엇입니까?


11

나는 디렉토리를 만들고 folder실행 권한을 빼앗 았습니다.

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

이제 내가하면

$ ls folder

파일 목록을 출력하지만 내가 할 때

$ ls -l folder

나는 얻다

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

왜 그런 겁니까?


4
답변을 확인하십시오 . 귀하의 질문에 대한 답변이 있습니다.
Ramesh

2
"해당 디렉토리에 대한 실행 권한이없는 경우 'ls'와 'ls -l'의 차이점은 무엇입니까?" 기본적으로, 당신이 'LS'와 'LS는 -l'의 차이와 동일합니다 않는 디렉토리에 실행 권한을 가지고있다.
G-Man, 'Reinstate

답변:


18

ls -l폴더 stat의 내용은 시도 ls하지 않지만 다음은 수행하지 않습니다.

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

그렇기 때문에와 함께 ls -l하지 않고 "권한이 거부되었습니다"라는 이유가 있습니다 ls.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.