Linux에서는 쓰기 권한이 있다고 표시되지만 이 파일을 제거할 수 없습니다.

Linux에서는 쓰기 권한이 있다고 표시되지만 이 파일을 제거할 수 없습니다.

Linux에서는 쓰기 권한이 있지만 이 파일을 제거할 수 없다고 표시합니다. 이미 확인했으며 모든 상위 디렉토리에 대한 실행 권한이 있습니다. 어떻게 이런 일이 일어날 수 있는지 아시나요?:

deployer@my-web:/usr/local/bin$ ls -la
total 10656
drwxr-xr-x  2 root     root        4096 Feb 11 21:25 .
drwxr-xr-x 10 root     root        4096 Feb  3 13:21 ..
-rwxr-xr-x  1 deployer deployer 1836198 Mar 18 19:05 composer

deployer@my-web:/usr/local/bin$ rm composer
rm: cannot remove ‘composer’: Permission denied

답변1

간단히 대답하자면, 파일에 대한 권한뿐만 아니라 파일이 들어 있는 디렉터리에 대한 권한도 필요하다는 것입니다. 클래식 UNIX에서 디렉토리는 실제로 특별한 종류의 파일입니다. 즉, 내부 파일에 대한 포인터를 보유하는 파일입니다. 이것이 바로 디렉터리에 대한 쓰기(w) 액세스 권한이 필요한 이유입니다.

이 경우 /usr/local/bin에 대한 권한을 변경(또는 권한 있는 소유자가 변경하도록)해야 합니다.

답변2

디렉터리에 대한 권한은 파일에 대한 권한과 정확히 동일하지 않습니다.
쓰기 권한을 사용하면 사용자는 파일이나 하위 디렉터리를 다른 사용자가 소유한 경우에도 파일이나 하위 디렉터리를 생성, 삭제 또는 수정할 수 있습니다.

디렉토리의 경우에는 동일한 명령어를 사용하므로 큰 변화는 없습니다. 그러나 일반적으로 디렉토리에는 새 사용자나 그룹에도 할당해야 하는 파일이 포함되어 있으므로 '-아르 자형'를 뜻하는 '깃발'재귀적' - 즉, 모든 하위 디렉터리와 해당 파일:

chown -R user:group dirname

관련 정보