나중에 덮어 쓰기, 추가, 업데이트 또는 삭제할 수없는 Linux 파일 시스템에 파일을 작성해야합니다. sudo-er, root 또는 다른 사람이 아닙니다. 기본적으로 전자 문서를 WORM (한 번 작성, 여러 번 읽음) 장치에 기록하도록 요구하는 기록 보관에 대한 금융 서비스 규정 (FINRA 17A-4)의 요구 사항을 충족하려고합니다. DVD 나 값 비싼 EMC Centera 장치를 사용하지 않는 것이 좋습니다.
Linux 파일 시스템이 있습니까, 아니면 SELinux가 파일을 작성한 후 즉시 (또는 최소한) 불변으로 만들 수있는 요구 사항을 지원할 수 있습니까? 아니면 리눅스 권한 등을 사용하여 기존 파일 시스템에서이를 시행 할 수있는 방법을 알고 있습니까?
읽기 전용 권한과 변경 불가능한 속성을 설정할 수 있음을 이해합니다. 물론 루트 사용자가 설정을 해제 할 수있을 것으로 기대합니다.
마운트 해제 한 다음 읽기 전용으로 다시 마운트하는 작은 볼륨에 데이터를 저장하는 것을 고려했지만 루트는 여전히 마운트 해제했다가 다시 쓰기 가능한 것으로 다시 마운트 할 수 있다고 생각합니다.
나는 현명한 아이디어를 찾고 있으며 최악의 시나리오는 이것을 제공하기 위해 기존 파일 시스템을 ‘향상’하기 위해 약간의 코딩을하고 싶습니다. 좋은 시작점이되는 파일 시스템이 있다고 가정합니다. 이 유형의 네트워크 저장 장치로 작동하도록 신중하게 구성된 Linux 서버를 배치하고 다른 작업은 수행하지 마십시오.
그 후에 파일의 암호화도 유용합니다!
답변
OpenAFS 및 읽기 전용 볼륨을 사용하여이를 수행 할 수 있습니다. 그러나 작동하기 위해 설치해야 할 인프라가 많기 때문에 요구 사항을 충족하지 못할 수 있습니다.
기본적으로, 쓰기 가능한 볼륨과 하나 이상의 읽기 전용 볼륨 사본이 있습니다. 쓰기 가능한 볼륨을 해제 할 때까지 읽기 전용 복사본은 클라이언트에서 변경할 수 없습니다. 볼륨을 해제하려면 관리자 권한이 필요합니다.
모든 솔루션에는 특수 하드웨어 또는 특수 하드웨어의 의미를 복제하는 네트워크 파일 시스템이 필요한 것 같습니다.
답변
사용자 정의 파일 시스템 / 커널 코드를 작성하지 않으면이 작업을 수행 할 수있는 방법이없는 것 같습니다.
실용적인 솔루션은 WORM 아카이브 스토리지 옵션과 함께 Amazon Glacier를 사용하는 것으로 보입니다. https://aws.amazon.com/blogs/aws/glacier-vault-lock/ 의 AWS 공식 블로그에 따르면
[…]이 중요한 레코드 보존 유스 케이스를 지원하도록 설계된 다양한 준수 제어로 볼트를 잠글 수있는 새로운 Glacier 기능. 이제 볼트에서 볼트 잠금 정책을 생성하고 잠글 수 있습니다. 일단 잠겨 있으면 정책을 덮어 쓰거나 삭제할 수 없습니다. Glacier는 정책을 시행하고 여기에 지정된 통제 (사전 정의 된 보존 기간 포함)에 따라 귀하의 기록을 보호합니다.
볼트 잠금 정책을 잠근 후에는 변경할 수 없습니다. 그러나 별도의 볼트 액세스 정책을 사용하여 준수와 관련되지 않은 액세스 제어를 계속 변경하고 구성 할 수 있습니다. 예를 들어, 비즈니스 파트너 또는 지정된 제 3 자 (규정에 따라 필요한 경우)에 대한 읽기 권한을 부여 할 수 있습니다.
저에게는 NetApp 또는 EMC 하드웨어 비용없이 필요한 정보를 정확하게 제공하면서 기록 보존 요구 사항을 충족하는 것처럼 보입니다.
답변
사용자가 파일을 덮어 쓸 수없는 시스템에서 파일에 액세스해야하는 경우 쓰기 권한이없는 원격 볼륨을 마운트 할 수 있습니다. 이를 수행하는 가장 쉬운 방법은 읽기 전용 samba / cifs 공유를 마운트하는 것입니다.
그렇지 않으면 사용자가 덮어 쓰거나 수정할 수없는 새 파일을 쓸 수있는 방법이 필요한 경우 해결책은 FUSE curlftpfs를 사용하여 FTP 경로를 마운트하는 것입니다.
다음 지시문을 사용하여 proftpd 디렉토리를 설정할 수 있습니다.
AllowOverwrite off
<Limit WRITE>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
이러한 방식으로 새 파일을 마운트 된 디렉토리에 저장할 수 있지만 더 이상 수정하거나 제거 할 수 없습니다.