백업(/etc)에서 파일 소유권을 어떻게 보존할 수 있습니까?

백업(/etc)에서 파일 소유권을 어떻게 보존할 수 있습니까?

나는 여러 출처에서 백업하는 것이 유용할 수 있다고 제안하는 것을 보았습니다 /etc. 예를 들어 "친구와 가족을 위한 데비안 컴퓨터 지원"이라는 프리젠테이션이 있습니다.

중요한 백업의 경우 잘 정의된 복원 프로세스도 필요합니다(주기적으로 테스트할 수 있습니다 :-).

이러한 시스템 파일을 어떻게 복원합니까?소유권 정보가 포함된 백업에서? 작동 중인 복원 프로세스의 예를 들어보세요. 어떤 가정을 했는지 기술하십시오. tar또는 등 원하는 백업 도구를 선택할 수 있습니다 etckeeper.


특정 소유자가 있는 파일의 예:

$ ls -l|grep -v "root root"
total 2240
-rw-r-----.  1 root brlapi     33 Nov 15 21:32 brlapi.key
-rw-r-----.  1 root chrony    481 Nov 21 11:03 chrony.keys
drwxr-xr-x.  4 root lp       4096 Apr 18 10:58 cups
-rw-------.  1 tss  tss      7046 Feb  5  2016 tcsd.conf

답변1

내가하는 방법은 설치하는 것입니다etckeeper. 데비안과 파생상품에 잘 통합되어 있습니다. Etckeeper는 권한 기억을 관리합니다(SELinux 라벨은 제외). 그런 다음 백업은 버전 제어 저장소(예: 에서 ) /etc를 백업하는 잘 알려진 문제로 축소됩니다 .git pull/etc

백업을 복원하려면:

  1. 기본 설치를 수행합니다(원본과 동일한 기본 설치).
  2. etckeeper필요한 버전 제어 시스템을 설치합니다 .
  3. /etc( git clone및 또는 이에 상응하는 항목) 의 백업을 복원합니다 git checkout. sourcejedi가 지적한 대로 사용자 또는 그룹 ID를 동적으로 할당하는 패키지를 설치하기 전에 이 작업을 수행해야 합니다.
  4. 설치된 패키지 목록을 복원하고 설치합니다. Etckeeper는 이를 추적하지 않습니다. Debian 및 파생 제품에서는 를 사용하고 apt-clone참조하세요.설치된 패키지 선택을 한 데비안 시스템에서 다른 시스템으로 어떻게 복제합니까? (데비안 위지)).
  5. 재부팅합니다.

하드웨어가 정확히 동일하지 않거나 파일 시스템이 다시 포맷된 ​​경우(백업을 복원할 때 흔히 발생하는 경우) 작동하지 않을 수 있는 몇 가지 사항이 있습니다. 복원 작업을 보다 원활하게 수행하려면 구성의 어디에서나 고유한 하드웨어 식별자(예: MAC 주소, 디스크 일련 번호) 또는 임의 ID(예: 파일 시스템 또는 파티션 UUID가 아닌 파일 시스템 레이블 사용)를 사용하지 마십시오.

답변2

이 답변은 다른 곳에서는 언급되지 않은 테스트가 필요한 일부 문제에 대한 체크리스트입니다. 이제 복원 방법을 자세히 설명하지 않는 "백업" /etc에 대한 언급을 기꺼이 무시할 수 있습니다. 이 체크리스트가 완전한지 테스트해 본 적이 없습니다..

다음 단계에서는 질문에 구체적으로 언급되지 않은 것처럼 패키지 업그레이드 중에 etckeeper에서 자주 나타나는 버전별 변경 사항 및 기타 변경 사항도 무시합니다. 적어도 OpenWrt를 실행하는 라우터처럼 문제가 되지 않는 더 간단한 시스템이 있을 수 있습니다.

  1. 가정: 이 백업에는 구체적으로 /etc.
  2. 가정: 또한 .NET에서 다른 UUID로 다시 생성되었을 수 있는 파일 시스템에 대한 참조를 처리하는 방법도 알고 있습니다 /etc/fstab.
  3. 가정: 대상 시스템에는 어떤 항목도 포함되어 있지 않습니다.추가의백업과 비교할 때 사용자. 예를 들어 운영 체제를 새로 설치하고 초기 사용자가 동일한 이름(및 UID)으로 생성되었으며 업그레이드 중에 OS에 추가 서비스가 추가되지 않았습니다. 이는 데비안 안정 릴리스에서는 사실일 가능성이 높지만 롤링 릴리스 배포판에서는 확실히 신뢰할 수 없습니다.
  4. 가정: 설치 프로세스는 할당된 UID(패키지 설치 순서)에 따라 완전히 결정적입니다.그리고이는 리포지토리의 새로운 업데이트에 영향을 받지 않습니다. 나는 일반적인 패키지 관리자가 결정적이라고 생각합니다. 다시 말하지만, 데비안 안정은 아마도 신뢰할 수 있지만 롤링 릴리스는 그렇지 않으며 그 사이에는 불확실성의 영역이 있습니다. 업데이트 리포지토리에 액세스하지 않고 정확히 동일한 버전의 설치 프로그램을 실행하도록 구성할 수도 있습니다(둘 다 복원 중).그리고원래 시스템을 설치한 경우).
  5. 백업용 복원 도구를 이미 설치했어야 합니다. :).
  6. 아래 단계에서는 Linux의 기존 섀도우 비밀번호 파일도 가정합니다. BSD 시스템은 다른 파일 이름을 사용합니다. 일부 특수 목적의 Linux 시스템에서는확연히 다른 스타일.
  7. 에 정의된 비밀번호를 사용하지 않고 일부 "복구 모드"로 부팅할 수 있는지 확인 /etc하고 백업에 액세스하기 위해 더 복잡한 것이 필요하지 않은지 확인하십시오. 우리는 여기서 불장난을 하고 있습니다. 백업과 동일한 비밀번호를 사용하면 도움이 될 수 있지만 디스크 암호화가 이를 어떻게 처리할지 모르겠습니다. 별도의 "rescue"에서 실행하면 아래 단계가 작동하지 않습니다.체계".
  8. mv /etc/ /etc.installer # can be removed later
  9. mkdir /etc && chmod 755 /etc
  10. ID_FILES=passwd group shadow
  11. for i in $ID_FILES; do cp /etc.installer/${i} /etc; done
  12. 이제 의 각 파일을 i백업 에서 대상 시스템으로 $ID_FILES복원할 수 있습니다 ./etc/${i}
  13. 이제 복원할 수 있습니다모두소유권 정보를 포함한 파일.
  14. 이제 할 수 있습니다SELinux 라벨 다시 적용또는 필요한 경우 이에 상응하는 것.

백업이 etckeeper 저장소(추가 파일 없음)인 경우 12단계는 이를 복사/복제한 /etc후 를 실행하는 것 입니다 etckeeper init. 10~12단계를 건너뛸 수도 있습니다.

OpenWrt

시스템 구성 백업/복원은 웹 인터페이스의 특정 기능과 함께 OpenWrt 라우터에서 지원됩니다.

/etc내 OpenWrt 15.05.1 시스템에서 (또는 다른 곳에서) 파일을 소유한 유일한 사용자는 root및 입니다 nobody. OpenWrt를 새로 설치하면 이미 이러한 사용자가 포함되어 있다고 가정하는 것이 안전합니다.

추가 사용자를 추가한 OpenWrt 설정이 이 도구로 올바르게 처리되는지는 알 수 없습니다.

관련 정보