파일을 삭제할 수 없도록 설정해야 하지만 수정 및 이름 변경이 가능하도록 허용해야 합니다.

파일을 삭제할 수 없도록 설정해야 하지만 수정 및 이름 변경이 가능하도록 허용해야 합니다.

파일이 있는지 확인하고 파일이 있으면 파일에서 이메일 주소 목록을 읽어 알림을 보내는 스크립트가 있습니다. 예를 들어 직장에서 이미 출력을 모니터링하고 있을 때와 같이 알림을 받을 필요가 없으면 이름을 바꾸겠습니다. 다른 관리자가 삭제하는 것을 원하지 않습니다.

파일을 변경할 수 없게 만들 것이라는 것을 알고 있지만 chattr +i파일이 삭제되는 것을 방지하고 싶습니다. 나는 chattr 프로그램이 파일 이름이 아닌 속성을 추적하기 위해 inode 번호를 사용할 것이라고 생각합니다.

이를 가능하게 하는 유틸리티가 있습니까?

답변1

"다른 관리자"에 대한 댓글은 귀하가root파일을 저장하려는 시스템에 대한 권한. 권한 방식으로 설정할 수 있는 모든 항목은 동일한 권한을 가진 사람이 취소할 수 있습니다.

이것이 문제가 되지 않고 확장된 권한을 가진 사람이 없다면 일반적으로 t 비트가 설정된 /tmp또는 에 파일을 넣을 수 있습니다(다른 사용자가 방지할 수 있음)./var/tmp권한 있는 사용자삭제 중그것. 파일을 chmod하여 그룹 쓰기 가능(동일 그룹의 다른 사용자가 수정 가능)하게 만들 수 있습니다.

답변2

"다른 관리자"는 악의적입니까? 그들이 당신을 잡으러 나갔나요? 그렇다면 아마도 당신이 할 수 있는 일은 아무것도 없을 것입니다.

그렇지 않은 경우 아마도 가장 간단한 해결책은 파일을 홈 디렉터리에 넣도록 스크립트를 변경하는 것입니다. 이에 대한 변형은 다른 디렉터의 파일에 대한 하드 링크를 만드는 것입니다. 삭제(링크 해제)하지 않는 한모두링크가 없어도 파일은 그대로 유지됩니다. (모든 링크 위치를 살펴보고 아직 존재하는 링크를 찾은 다음 제거된 모든 링크를 다시 연결하는 다른 스크립트를 작성해야 합니다.) 일부 편집자는 링크를 깨뜨릴 수 있다는 점에 유의하십시오. 파일).

"다른 관리자"가 악의적이거나 경험이 없고 철저하지 않은 경우에도 문제를 해결할 수 있습니다.

또는 파일을 변경할 수 없도록 만들고 다른 테스트를 사용하여 이메일을 보낼지 여부를 결정하도록 스크립트를 변경하세요.

답변3

다른 답변 중 일부에서 제기된 요점까지 mv유틸리티를 사용하여 사회적 장벽을 제안할 수 있습니다.

mv yourfile THIS_IS_user38537_FILE_PLEASE_DO_NOT_REMOVE

답변4

[이전 답변 대체]

간단히 파일에 대한 하드 링크를 만들 수 있습니다.

ln email_file hard_link

그러면 삭제되어도 여전히 존재하며 쉽게 복원할 수 있습니다.


[문제에 대한 오해를 바탕으로 한 이전 답변]

한 가지 해결책은 을 사용하여 스크립트 자체를 불변으로 만드는 것입니다. chattr그러나 이름을 바꾸는 것이 아니라 잃어버릴 수 있는 빈 파일의 유무를 사용하여 켜고 끄는 것입니다. 이라고 부르세요 snoozebutton. 존재하는 경우 스크립트는 알리지 않습니다. 거기에 없으면 스크립트가 이를 알립니다. 그렇게 하면 누군가 실수로 삭제하더라도 안전하지 않습니다. 알림을 받고 에 어떤 일이 발생했다는 알림도 받게 됩니다 snoozebutton.

물론 이는 스크립트를 자주 수정할 필요가 없다고 가정합니다. 그렇게 한다면 작은 유틸리티 스크립트를 실행하고 chattr편집기를 실행한 다음 실행하여 chattr다시 잠그는 것이 좋습니다.

관련 정보