파일에 대한 변경 사항을 수신하고 a) 파일을 즉시 복원
하거나
b) 편집 프로그램(예: sed -i
, truncate
)이 편집 내용을 삭제하면서 파일에 기록했다고 믿게 만드는 방법이 있습니까?
기본적으로 나는 프로그램이 파일을 읽을 수 있고 심지어 파일을 수정하고 있다고 생각하면서 파일을 변경하지 않고 그대로 두기를 원합니다(또는 가능한 한 빨리 원본 파일로 교체).
편집: 사용 사례에 대한 질문을 받았는데
두 가지 프로그램을 사용하고 있습니다. 첫 번째 프로그램( master
)은 두 번째 프로그램( )을 관리하도록 설정됩니다 slave
. master
작업 의 일부는 에 대한 것입니다. 하드코딩된 것으로 보이는 구성 파일의 속성을 slave
변경해야 합니다 . master
안타깝게도 master
컴파일된 바이너리로만 제공되므로 작성하는 파일이나 작성 내용을 변경할 수 없습니다. 생성된 파일의 구성 만 slave
허용될 수 있으며 변경되지는 않지만 파일에서 편집 액세스가 취소되면(예를 들어) 충돌이 발생합니다 . 이로 인해 파일 변경과 실행 사이에 본질적으로 경쟁 공격이 필요하게 됩니다 .master
chmod 444
master
master
slave
답변1
몇 가지 생각:
- Union 파일 시스템을 살펴보십시오. 퓨즈가 1개(최소 2개) 있습니다.
slave
파일을 복원한 다음 exec를 실행하는 래퍼 스크립트를 작성합니다slave
.
답변2
마스터 서버와 슬레이브 서버를 다른 사용자로 실행할 수 있는 옵션이 있는 경우. 그런 다음 chmod 644는 마스터가 쓰기를 허용하고(충돌이 발생하지 않음) 슬레이브가 읽을 수 있도록 허용합니다.