사용자가 홈 디렉터리의 폴더와 파일을 삭제하는 것을 방지하는 방법은 무엇입니까? 내 시나리오에서는 사용자가 폴더를 만들고 수정할 수 있지만 폴더를 삭제해서는 안 됩니다. 우리는 어떻게 이 목표를 달성할 수 있습니까?
답변1
파일을 삭제하려면 파일의 상위 디렉터리에 대한 쓰기 권한이 필요합니다. 처음에 디렉터리에 파일을 생성하는 데 필요한 것과 동일한 권한이 필요하므로 요구 사항이 충돌합니다. 삭제를 방지하기 위해 사용자의 홈 디렉터리에 대한 쓰기 권한을 제거하면 파일도 생성되지 않습니다.
파일 생성과 파일 삭제는 매우 유사합니다. 두 경우 모두 항목을 추가하거나 삭제하여 디렉터리의 항목을 변경합니다.
답변2
정말로 원한다면 다음을 사용하여 중요한 기존 파일을 변경 불가능하게 수동으로 만들 수 있을 것 같습니다.
$ chattr +i filename
이렇게 하면 파일에 i 속성이 추가되어 누구도 어떤 식으로든 파일을 수정하거나 삭제할 수 없습니다. 파일이 변경 불가능한지 확인할 수 있습니다.
$ lsattr filename
----i--------e-- filename
i 태그가 존재하면 변경할 수 없습니다. 제거하려면 다음을 사용하십시오.
$ chattr -i filename
참고: 파일에서 변경할 수 없는 태그를 추가하거나 제거하려면 루트여야 합니다.
물론 이 방법의 단점은 삭제를 방지하려는 모든 파일에 대해 이 작업을 수동으로 수행해야 한다는 것입니다. 좋은 점은 사용자가 새 파일을 만드는 것을 방해하지 않는다는 것입니다.