파일이 삭제되지 않도록 잠그지 만 여전히 쓰기 가능하게 만드는 방법은 무엇입니까?


33

파일을 삭제하지 못하도록 잠그고 싶지만 여전히 쓸 수 있습니다. 어떻게해야합니까?

문제의 파일은 NAS SMB 네트워크 공유의 파일 인 Truecrypt 볼륨이므로 실수로 삭제하고 싶지 않습니다.


1
불가능합니다. 0을 쓰면 삭제됩니다.
— soandos

@soandos-나는 두려워하는 것에 동의하지 않습니다. 0을 쓰는 것은 여전히 ​​파일이 존재하지만 0으로 가득하다는 것을 의미합니다. 실제로 0으로 가득 찬 'sparse'파일을 작성하는 Linux 명령이 있습니다.
— therobyouknow

답변:


34

Windows의 경우 :

  1. 파일에 대한 "삭제"권한을 거부하십시오.
  2. 부모 디렉터리에 대한 "자식 항목 삭제"권한을 제거하거나 거부하십시오.

유닉스 (OS X 포함) :

  1. 부모 디렉토리에서 "쓰기"권한을 제거하십시오.

이렇게하면 파일이 제거 (삭제)되는 것만 막을 수 있지만 실수로 잘라내거나 가비지로 덮어 쓰는 작업은 수행하지 않습니다. 파일이 쓰기 가능하면 파일을 쓸 수 있습니다.

또한 파일 권한은 운영 체제 간 변환이 불가능합니다. NAS가 Linux를 실행하고 Windows 내에서 권한을 설정하려고하면 최종 결과가 예상과 다를 수 있습니다.


가장 좋은 대답은 내가 생각합니다. +1 감사합니다. 예, NAS는 ARM에서 Linux 버전을 실행하는 Lacie 2big입니다.
— therobyouknow

1
실제로 삭제를 거부 할 필요는 없으며 기존 액세스 제어 항목 (ACE)에서 삭제 만 제거하면됩니다. (ACE 거부는 일을 더 복잡하게 만들며, 일반적으로 장기적으로는 좋은 과정이 아닙니다.)
— Richard

2
@Richard : AFAIK를 제거하려면 해당 파일에 대한 ACL 상속을 완전히 비활성화해야하므로 결국 훨씬 더 복잡해집니다.
— grawity

나는 Grawity에 동의합니다. 삭제 거부 권한이 있습니다. 공유 권한이 수정되도록 설정되어 있으면 거부는 여전히 삭제를 차단하지만 비워두면 삭제가 허용됩니다.
— surfasb

26

Linux에서는 하드 링크를 만들 수 있습니다. 그런 다음 파일에 쓰고 "삭제"할 수 있지만 디렉토리에서 참조 만 제거합니다. 다른 하드 링크는 여전히 파일 내용을 가리 키므로 삭제되지 않습니다.

유닉스 세계에서는 파일을 "삭제"하지 않습니다. 하드 링크 수를 줄이면됩니다. 다른 것이 아무것도 가리 키지 않으면 공간은 비어있는 것으로 간주되어 사용할 수 있습니다.


2
좋은 생각. @Rob가 NAS에서 하드 링크를 생성 할 수 있는지는 모르지만 가능하면 매우 영리한 솔루션입니다.
— CarlF

1
+1 가능한 경우 허용되는 답변과 함께 콤보로 사용할 수 있습니다. 그렇지 않으면 별도로. 상자 밖에서 생각하면 +1. 그러나 문제의 리눅스 공유는 NAS 드라이브이며, 어떤 콘솔 기능을 사용할 수 있는지, 내장 또는 반 임베디드 리눅스 형태인지 확실하지 않습니다. 그래도 +1은 일반 리눅스 데스크톱이나 컴퓨터가 공유 역할을하는 다른 사람들에게 도움이 될 수 있습니다.
— therobyouknow

2
NTFS에서도 동일한 기술이 작동합니다.
— Rotsor

woliveirajr 솔루션 지원을위한 +1 RBerteig 및 +1 CarlF.
— therobyouknow

12

백업. 삭제 가능한 경우에도 쓰기 가능한 파일이 실제로 손상 되지 않도록 보호 할 수는 없습니다 . 매일 백업하십시오.


4
+1. 다른 벨트와 멜빵을 적용해도 상관 없습니다.
— RBerteig

+1 CarlF 및 +1 RBerteig. 전적으로 동의합니다. 파일은 모두 광학 미디어에도 백업됩니다 (DVD-R, + R, + R DL 및 blu-ray 25gb 및 dl 50gb). 또한 두 번째 하드 드라이브를 고려할 수도 있습니다.
— therobyouknow

컨테이너 파일 인 truecrypt 볼륨 내에 파일 백업을 추가해야 합니다. truecrypt 볼륨 자체가 아닙니다.
— therobyouknow

0

이전 anwers 외에도 selinux를 살펴 보는 것이 좋습니다. 거기에서 매우 세부적인 한계를 정의 할 수 있습니다.


0

btrfs와 같은 cow 파일 시스템에서 하위 볼륨 + 스냅 샷 또는 --reflink = always와 함께 cp를 사용하여이를 달성 할 수 있습니다. 이는 원하는만큼 많은 파일을 생성하여 하나의 + 일부 오버 헤드와 동일한 공간을 소비합니다. 아주 작은 파일 크기와 결합 된 엄청난 수의 사본 또는 스냅 샷이없는 경우, 수정 될 때까지 변경되지 않은 부분 만 별도로 저장되고 나머지는 여전히 공유됩니다. 그런 다음 각각에 대해 개별적으로 권한을 설정하십시오 (정기적으로 스냅 샷을 만들거나 읽기 전용 권한으로 복사하려는 것을 달성하십시오 (선택적으로 스냅 샷 인 경우 파일을 사용하는 경우 chattr + i를 사용할 수 있습니다). 편집증이있는 경우 한 사본에 대해 쓰기 권한이있는 경우에도 파일을 쓰거나 수정하지 마십시오.


0

"표준"UNIX에서는 디렉토리를 쓸 수있는 경우 단일 파일이 삭제되지 않도록 보호 할 수없는 것 같습니다. 직관적으로, 'chmod'를 사용하여 모드 비트에서 w 보호를 지우면 삭제되지 않도록 보호해야하지만 이는 케이스가 아닙니다. 마찬가지로 AFS에서는 ACL 항목 (관련 'd'권한이 없거나 거부 된)이 전체 디렉토리에만 적용되므로 단일 파일이 삭제되지 않도록 보호 할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.