디렉토리의 권한을 변경할 때 물음표 문자가 나타나는 이유는 무엇입니까?


33

초기 권한이 일시적으로있는 폴더의 권한을 변경하려고합니다.

user@ubuntu:/var/log$ ls -l squid*
squid3:
total 4
-rw-r----- 1 proxy proxy    0 Jan 16 14:43 access.log
-rw-r----- 1 proxy proxy 1359 Jan 16 14:43 cache.log
ls: cannot open directory squid-deb-proxy: Permission denied

다음에 오는 것에

user@ubuntu:/var/log$ sudo chmod -R 644 squid*
user@ubuntu:/var/log$ ls -l squid*
squid3:
ls: cannot access squid3/cache.log: Permission denied
ls: cannot access squid3/access.log: Permission denied
total 0
-????????? ? ? ? ?            ? access.log
-????????? ? ? ? ?            ? cache.log

squid-deb-proxy:
ls: cannot access squid-deb-proxy/store.log: Permission denied
ls: cannot access squid-deb-proxy/cache.log: Permission denied
ls: cannot access squid-deb-proxy/access.log: Permission denied
total 0
-????????? ? ? ? ?            ? access.log
-????????? ? ? ? ?            ? cache.log
-????????? ? ? ? ?            ? store.log

권한이 변경되면 어디서나 물음표가 나타납니다. 왜 이런 일이 발생합니까? 기본적으로 액세스 로그를 읽고 squid-deb-proxy 서버가 클라이언트의 요청을 받고 있는지 확인하고 싶습니다.

답변:


38

디렉토리의 권한을 보려면 다음 과 같이 -d플래그를 전달해야합니다 ls.

ls -ld squid3

파일을 읽으려면 읽기 권한을 설정해야합니다. 그러나 디렉토리와 파일 목록을 읽으려면 읽기 및 실행 권한을 모두 설정해야합니다 . 그렇지 않은 경우 발생한 오류와 같은 이상한 오류가 발생합니다.

파일에 대한 읽기 권한과 디렉토리에 대한 읽기 및 실행 권한을 반복적으로 설정하려면 다음 명령을 사용하십시오.

chmod -R a+rX directoryname

해당 명령에 대한 설명은 다음과 같습니다.

  • chmod 파일의 권한을 변경하는 데 사용되는 명령의 이름입니다.
  • -R재귀 플래그입니다. 이는이 명령을 디렉토리, 모든 하위 및 하위 하위에 적용하는 것을 의미합니다.
  • a 모두의 약자 :이 권한을 파일 소유자, 파일 그룹 소유자 및 다른 모든 사용자에게 적용하십시오.
  • + 다음 권한이 아직 설정되지 않은 경우 추가합니다.
  • r 읽기 권한을 의미합니다.
  • X실행 권한을 의미하지만 디렉토리에서만. 소문자 x는 파일과 디렉토리 모두에 대한 실행 권한을 의미합니다.

자세한 내용은 명령 맨 페이지chmod맨 페이지 아이콘 에서 찾을 수 있습니다.


1
사용에 문제가 chmod -R 644 squid*
등록 된 사용자

4
@RegisteredUser : 예. 644는 rw-r--r--파일에 적합하지만 디렉토리에는 적합하지 않습니다. 디렉토리는 다음과 같이 실행 권한도 설정해야합니다. rwxr-xr-x또는 755. 언급 한 명령은 모든 파일 및 디렉토리에 대한 실행 권한을 재귀 적으로 설정 해제하여 이러한 오류를 발생시킵니다.
Flimm

3

나도이 문제가 있었다. 파일에서 chmod 또는 chown을 수행 할 수 없습니다. 삭제하려고했습니다. 삭제하려고 시도하면 (rm 명령) 문제가 발생했습니다. 중요한 것은 파일이 서로 다른 두 시스템간에 공유 된다는 입니다. 다른 시스템에서 파일을 닫으면 파일이 사라졌습니다. 내 구성에 대한 자세한 내용은 다음과 같습니다. 시스템 1 : 우분투 게스트 VM. 이것은 내가 rm 명령을 한 곳입니다. 시스템 2 : Windows 7 호스트. 이것은 less 명령을 사용하여 파일을 열었던 곳입니다 (cygwin에서는 반드시 관련이있는 것은 아닙니다).


2

읽는 것이 목표라고 말했듯이 /var/log/squid/access.log가장 좋은 해결책은 sudo less /var/log/squid/access.log타이핑하는 것입니다.

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