알아요루트는 무엇이든 할 수 있습니다, 그러나 삭제하면 안 되는 폴더를 삭제하려고 한다는 사실을 적어도 루트에게 경고할 수 있는 방법이 있습니까?
우리는 폴더 내에 작업 디렉토리를 유지 /tmp
하고 관리자가 때때로 나타나서 /tmp
대략적 으로 sudo rm -rf *
. 대략 다음과 같습니다.
The folder XXXXX is protected from deletion - do you really want to delete this folder? (y/n)
가장 좋은 해결책은 이 폴더를 다른 곳으로 옮기는 것이라는 것을 알고 있습니다( /tmp
결국 임시 폴더라고 합니다!). 그러나 여기에는 다른 문제가 있습니다. 그러므로 내 질문입니다.
이 질문을 하면 궁금해집니다. 해당 폴더의 모든 내용을 맹목적으로 삭제하는 것이 실제로 나쁜 습관인가요 /tmp
? 일정 기간이 지난 파일만 삭제하는 것이 좋지 않을까요?
답변1
작업 폴더 이동예해결책. 맞습니다. 맹목적으로 파일을 삭제하는 것은 약간 위험합니다 . 일반적 /tmp
으로 시스템 시작/종료 시 또는 tmpwatch
. 그러나 그 정의에 따르면 공간은 불안정하며, 그렇지 않으면 불합리한 기대는 불합리할 것입니다.
그러나 실제로 이런 일이 발생하지 않도록 하려면 SE Linux를 사용하면 됩니다. 디렉터리에 특정 레이블을 지정하고 루트가 일반적으로 디렉터리에 액세스하지 않도록 구성할 수 있습니다.링크 권한 취소이 라벨이 있는 개체의 경우. 그럼에도 불구하고 이것은 디렉토리를 더 나은 공유 위치로 이동하는 것보다 훨씬 더 많은 작업처럼 보입니다. 그리고 상상할 수 있는 "Are you really y/n" 프롬프트가 아닌 SE Linux 감사 메시지가 표시되므로 이를 살펴보십시오. 이로 인해 결국 실망스러운 혼란이 생길 수 있는 것 같습니다.
답변2
디렉터리의 디렉터리 속성을 변경할 수 없도록 변경할 수 있습니다.
# cd /tmp
# mkdir undeletable
# chattr +i undeletable
# rm -rf undeletable/
rm: cannot remove `undeletable': Operation not permitted
안타깝게도 디렉터리는 변경할 수 없으므로 수정할 수 없습니다.
# cd undeletable/
# touch foo
touch: cannot touch `foo': Permission denied
변경 가능한 하위 디렉터리를 가질 수 있지만 rm -rf는 여전히 파일을 삭제합니다. 따라서 이 솔루션은 /tmp에 읽기 전용 콘텐츠가 필요한 경우에만 작동합니다.
/tmp에 제거할 수 없는 RW 콘텐츠가 있어야 한다면 이를 보다 영구적인 다른 위치에 배치하고 쉽게 복원할 수 있는 /tmp에 심볼릭 링크를 만드는 것이 좋습니다. (분실시 자동으로?)
답변3
chmod +t /tmp/perm_file