다음 파일 모드 비트()가 포함된 파일이 있습니다 a+rw
.
[0] mypc<johndoe>:~>sudo touch /tmp/test
[0] mypc<johndoe>:~>sudo chmod a+rw /tmp/test
[0] mypc<johndoe>:~>ls -l /tmp/test
-rw-rw-rw- 1 root root 0 Mar 13 11:09 /tmp/test
왜 이 파일을 삭제할 수 없나요?
[0] mypc<johndoe>:~>rm /tmp/test
rm: cannot remove '/tmp/test': Operation not permitted
답변1
이 /tmp
디렉토리는 일반적으로 레이블이 지정됩니다.삭제 제한허가서 t
또는 출력 T
에 표시되는 플래그입니다 ls
.
삭제 제한여러 가지를 의미합니다. 일반적으로 이는 파일 소유자 또는 파일 자체의 소유자만이 /tmp
파일을 삭제할 수 있음 을 의미합니다 /tmp
.
소유자가 아니기 때문에 파일을 삭제할 수 없습니다. 즉, root
잊어버렸을 수도 있는 실행에서 시도해 보세요 rm
.sudo
sudo rm /tmp/test
보다 구체적으로, Linux의 경우에만 삭제 플래그를 제한합니다(예: 누구나 쓸 수 있는 디렉터리에서 /tmp
).반품이러한 디렉토리의 활성화 protected_symlinks
, protected_hardlinks
및 제한은 각각 사용자가 자신에게 속하지 않은 심볼릭 링크를 따라가는 것을 방지하고, 사용자 protected_regular
가 protected_fifos
자신에게 속하지 않은 파일에 대한 하드 링크를 생성하는 것을 방지하고, 사용자가 자신에게 속하지 않은 FIFO를 열지 못하게 합니다. 사용자가 원할 때 자신이 소유하지 않은 기존 파일을 열 수 없도록 방지합니다.
root
다양한 추가 작업을 수행할 때 권한 오류가 발생하면 놀랄 것입니다.하다사용 sudo
.
이러한 문제에 대한 자세한 내용은 다음을 참조하세요.하드 링크 권한은 CentOS 6과 CentOS 7 간에 다르게 작동합니다.","사용자 변경 시 심볼릭 링크가 예상대로 작동하지 않습니다.", 그리고"/tmp에서는 루트에 대한 그룹 권한이 작동하지 않습니다.".
답변2
문제는 끈끈한 부분인 것 같습니다 /tmp
.
$ ls -ld /tmp dwxrwxrw티⃝ 1044년 3월 13일 12:09 /tmp의 1 루트
https://en.wikipedia.org/wiki/Sticky_bit
디렉터리의 고정 비트가 설정되면 파일 시스템은 파일 소유자, 디렉터리 소유자 또는 루트 사용자만 파일 이름을 바꾸거나 파일을 삭제할 수 있도록 해당 디렉터리의 파일을 특별한 방식으로 처리합니다. 고정 비트가 설정되지 않은 경우 디렉터리에 대한 쓰기 및 실행 권한이 있는 사용자는 파일 소유자에 관계없이 포함된 파일의 이름을 바꾸거나 삭제할 수 있습니다.일반적으로 이는 일반 사용자가 다른 사용자의 파일을 삭제하거나 이동하는 것을 방지하기 위해 /tmp 디렉토리에 설정됩니다.