디렉터리의 다른 모든 사람에 대한 "x" 실행 권한과 쓰기 권한을 제거했습니다. /u/permtst/테스트/비트/. 디렉터리 세부 정보는 사용자: permtst 및 그룹: permtst입니다.
permtst@localhost(nyc):~/test/bits> ls -la
total 8
drwxrw-r-- 2 permtst permtst 4096 Aug 3 12:51 .
drwxrwsr-x 8 permtst permtst 4096 Aug 3 11:52 ..
-rw-rw-r-- 1 permtst permtst 0 Aug 3 11:56 test_file
-rw-rw-r-- 1 permtst permtst 0 Aug 3 11:56 test_file2
사용자모타마리속하지 않는라이센스 테스트그룹.
~부터다른 사람읽기 권한이 있으면 디렉토리의 ls는 디렉토리에 있는 파일 목록을 제공해야 합니다. 그러나 다음과 같은 내용이 표시되면 No Access가 인쇄되고 파일 목록도 예상대로 인쇄됩니다.
내 질문은 오류가 인쇄되는 이유입니다.ls: cannot access '/u/permtst/test/bits/test_file': Permission denied
motamari@localhost:~% ls /u/permtst/test/bits/
ls: cannot access '/u/permtst/test/bits/test_file': Permission denied
ls: cannot access '/u/permtst/test/bits/test_file2': Permission denied
test_file test_file2
답변1
r
디렉토리 에 없으면 실제로 파일 이름을 나열할 수 있지만 파일을 호출할 수 없기 때문에(*) x
파일에 대한 다른 정보를 얻을 수 없습니다 .stat()
-F
또는 와 같은 짧은 목록의 경우에도 파일 형식을 결정해야 하는 옵션으로 시작하는 경우 --color
오류 메시지와 동작은 정확히 GNU ls가 표시하는 것과 같습니다. ls
옵션이 있는 항목에 별칭을 추가했을 수 있습니다 alias ls
. \ls
를 사용하거나 프로그램을 실행하면 별칭을 무시할 수 있습니다 /bin/ls
. 를 사용 -l
하면 매우 혼란스러워 보이는 일련의 물음표도 얻게 됩니다.
$ mkdir dir; touch dir/file.txt; chmod a-x dir;
$ ls dir
ls: cannot access 'dir/file.txt': Permission denied
file.txt
$ \ls dir
file.txt
$ ls -l dir
ls: cannot access 'dir/file.txt': Permission denied
total 0
-????????? ? ? ? ? ? file.txt
$ alias ls
alias ls='ls -vF --color=auto'
하지만 동작은 구현에 따라 다릅니다 . 예를 들어 Busybox는 오류에 대해 덜그럭거리고 목록을 인쇄하지 않습니다(여기에서는 OR ls
도 사용하지 않습니다 ).-F
--color
$ busybox ls dir
ls: dir/file.txt: Permission denied
(*일부 시스템에서는 파일 형식도 제공하지만 여기서는 readdir()
이것이 왜 충분하지 않은지 잘 모르겠습니다 ls
.)