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


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.