이전에 이 질문을 받은 적이 있어서 죄송합니다. 답변을 찾을 수 없습니다. 만약 내가한다면:
touch file.txt
chomd 444 file.txt
원칙적으로 모든 사람(ROOT 제외)은 파일을 읽을 수만 있습니다. 하지만 이렇게 하면:
rm file.txt
다음과 같이 표시되어 있어도 파일을 삭제할 수 있습니다.
rm: remove write-protected regular empty file 'file.txt'? y
보호받고 있다고 해도 말이죠. 실제로 이 파일을 보호할 수 있는 방법이 있나요? 나는 그것을 할 수 있는 사람을 본 적이 있지만 chattr +i file.txt
이것은 당신이 그것을 할 수 있는 경우에만 작동합니다 sudo
. 나는 관리자가 아닙니다(예: 99%의 사용자).
건배.
답변1
Unix 파일 시스템에서는 파일을 실제로 삭제하지 않고 "링크 해제"합니다. 파일 데이터는 "inode"에 있고 디렉토리에는 해당 inode에 대한 참조가 있습니다(이것이 "하드 링크"를 가질 수 있는 이유입니다. 여러 디렉터리의 동일한 inode에 대한 여러 참조). 마지막 참조가 사라지면 inode가 파괴되고 공간이 복원됩니다.
rm
상위 디렉터리의 참조를 제거하고 파일이 아닌 해당 상위 디렉터리에 대한 쓰기 권한을 의미합니다. 따라서 파일 참조를 보호하려면 디렉터리에 대한 쓰기 권한을 제거해야 합니다.