파일을 작성한 사용자가 삭제할 수 없도록 파일을 폴더에 동기화하려면 어떻게 해야 합니까?

파일을 작성한 사용자가 삭제할 수 없도록 파일을 폴더에 동기화하려면 어떻게 해야 합니까?

집 환경에 장기 보관 기능을 추가하고 있습니다. 이는 특수 사용자만 쓰기 액세스 권한을 갖고 다른 사용자는 읽기 전용 액세스 권한을 갖는 별도의 ZFS 파일 시스템입니다. 주요 요구 사항은 특수 사용자만 archive파일 시스템에 대한 쓰기 액세스 권한을 가지고 있고(rsync 사용), 파일이 기록되면 root삭제할 수만 있다는 것입니다(즉, 일단 기록되면 파일은 읽기 전용이 됩니다).모두사용자).

각 "세션"은 현재 날짜-시간을 폴더 이름으로 사용하여 아카이브에 새 폴더 계층 구조를 만듭니다. 저는 동일한 파일이 여러 번 아카이브될 수 있는 상황을 처리하기 위해 ZFS 파일 시스템에서 압축 및 중복 제거를 활용합니다.

이를 위해 bash 스크립트를 작성했지만(Python을 사용할 수 있음) "한 번 쓰기" 요구 사항을 적용하기 위해 폴더 권한, umask 설정 등을 설정하는 데 문제가 있습니다.

어떤 아이디어가 있나요?

답변1

가장 큰 문제는 사용자가 archive아카이브의 모든 디렉터리에 대한 쓰기 권한이 필요하다는 것입니다. 즉, 일반 Unix 권한을 사용하면 archive삭제할 수도 있습니다. 따라서 사용자 아카이브에도 삭제 기능이 있다는 점을 인정할 수 있습니다.

umask를 0022로 설정하면 archive모든 사람이 파일을 읽을 수 있고 누구도 파일을 삭제할 수 없습니다. 아직 확인하지 않았다면 rscync매개변수 --no-perms--no-owner를 살펴보는 것이 좋습니다 .--no-group

관련 정보