사용자가 Linux 권한으로 파일을 변경하는 것을 방지하는 방법

사용자가 Linux 권한으로 파일을 변경하는 것을 방지하는 방법

사용자가 파일을 생성할 수 있지만 나중에 편집하거나 삭제할 수 없도록 Linux 권한 체계를 사용할 수 있습니까? 내 말은, 사용자가 아티팩트를 넣는 배달 폴더가 있고 배달 후에 이러한 아티팩트가 수정되거나 편집되거나 삭제되는 것을 원하지 않는다는 것입니다.

답변1

이렇게 할 수 없습니다. 사용자가 파일을 생성할 수 있으면 그 파일은 해당 사용자의 소유가 되며 사용자는 해당 파일을 수정하고 삭제할 수 있습니다.

나는 간단한 시나리오를 생각해 내고 준비 디렉터리(사용자가 원하는 것을 할 수 있는 곳)와 들어오는 디렉터리(사용자가 액세스할 수 없는 디렉터리)를 갖고 작은 권한이 있는 프로그램을 사용하여 준비 디렉터리에서 파일을 이동할 계획입니다. 디렉토리 디렉토리를 전달합니다. 그러나 올바르게 수행하는 것은 실제로 까다롭습니다. 무엇보다도 권한 있는 프로그램이 파일을 다른 디렉터리로 이동하지 않도록 주의해야 하며(경합 조건, 심볼릭 링크 주의 ../) 기존 파일을 덮어쓰지 않도록 주의해야 합니다( rename(3)원자적이지만 대상 삭제), 사용자가 파일 설명자를 열린 상태로 유지하고 파일을 이동한 후 파일을 수정하는 것을 허용하지 않습니다(따라서 이동하는 것보다 복사하는 것이 더 좋습니다). 대신 기존의 강력한 솔루션을 사용하는 것이 좋습니다.

  • 사용자가 HTTP를 통해 파일을 업로드할 수 있습니다.
  • 사용자가 버전 제어 시스템을 사용하도록 하세요. 그는 또한 새 버전을 제출할 수도 있습니다.

답변2

사용자가 파일을 생성할 수 있지만 나중에 편집하거나 삭제할 수 없도록 Linux 권한 체계를 사용할 수 있습니까?

아니요

그러나 귀하의 질문에 대한 의견에서 @Fredrik이 제안한 다른 옵션이 있습니다.이봐.

답변3

이론적으로는 이것이 가능한 접근 방식입니다. 개념 증명을 개발하는 것조차 나에게는 너무 많은 노력이 될 것입니다. 같은 이유로 거부할 수도 있습니다. 그리고 엄밀히 말하면 이것은 "Linux 권한 체계를 사용하는 것"이 ​​아닙니다.

  • 오픈 소스 파일 서버를 받으세요.
  • 원하는 규칙을 적용하려면 이를 수정하세요. 즉, 사용자는 쓰기 액세스 권한이 있는 디렉터리에 파일을 생성할 수 있고 파일이 생성된 후 즉시 파일에 쓸 수 있지만 그 후에는 루트 외에는 누구도 파일을 열어 쓸 수 없습니다. 또는 연결을 해제하세요).
  • 수정된 서버 소프트웨어를 실행하는 서버 호스트를 설정합니다. 이론적으로는 로컬 호스트일 수 있습니다. 작업 중인 디렉토리가 공개적으로 액세스할 수 없는지 확인하세요.
  • NFS는 파일을 마운트 /mnt/delivery하고 사용자에게 파일을 여기에 저장하라고 지시합니다.

답변4

간단한 대답은 선택한 특정 시간 간격(예: 15분마다)으로 스크립트를 실행하여 "업로드" 디렉터리에 있는 모든 파일의 소유권을 의도된 "관리자" 사용자에게 재할당하고 권한을 "644"로 설정하는 것입니다. 이렇게 하면 모든 사용자가 자신이 업로드한 파일을 포함하여 업로드 디렉터리의 모든 파일에 대한 읽기 전용 액세스가 허용됩니다. 물론 첫 번째 실행 후 스크립트를 최적화하여 스크립트가 마지막으로 실행된 날짜(예: 지난 17분) 이후에 생성된 날짜가 있는 파일만 검색할 수 있습니다.

관련 정보