현재 Ubuntu 20.04에서 Fedora 34로 마이그레이션 중입니다. 다음 백업 스크립트는 지금까지 잘 작동합니다.
rsync \
-avixXEH \
--stats \
--delete \
--numeric-ids \
--log-file="$LOG_FILE" \
--link-dest "$LATEST" \
--exclude '/some/exclude' \
admin@nas:/{a,b,c} \ # source is remote nas (via ssh)
"$TARGET" \ # $TARGET is ext. USB disk on fedora OS desktop
불행하게도 Fedora에서는 이제 복사된 모든 경로에서 경고가 발생하여 로그가 오염됩니다.
rsync_xal_set: lremovexattr("/my/path/file.zPXUj1", "security.selinux") 실패: 권한 거부됨 (13)
연구
-X
이는 확장된 속성( ) 및 SELinux를 유지/제거하려는 rsync의 문제인 것 같습니다 .
최근 인용문Red Hat의 Michal Ruprich:
이 문제는 실행 중인 시스템을 중단하지 않도록 오류 메시지를 억제하여 RHEL5에서 "수정"되었습니다. [...]
"rsync-2.6은 소스 파일의 확장 속성이 제거된 경우 대상 파일의 확장 속성을 제거하지 않습니다. 이를 버그라고 부를 수 있습니다.
rsync-3.0은 지워진 확장 속성을 제거하려고 올바르게 시도합니다.
selinux가 대상 시스템에 있는 경우 rsync는 파일의 보안 컨텍스트를 제거하지 못하고 위의 오류를 인쇄합니다. 따라서 정보 오류 메시지를 제외하면 2.6과 3.0의 동작은 동일합니다. "
rsync
3.2.3
SELinux가 아닌 소스를 사용하면 내 해석은 다음과 같습니다. 그렇지 않으면 수정해 주세요.
이 보안 기능을 사용하여 SELinux 없이 소스에서 대상으로 파일을 복사하는 것은 확장된 "security.selinux"
파일 속성을 제거하는 것으로 해석됩니다. rsync
대상에 대한 SELinux 보안 제한으로 인해 제거할 수 없습니다.
이는 다음과 같은 질문으로 이어집니다.
이러한 경고를 표시하지 않으려면 어떻게 해야 합니까?
-X
여전히 및를 사용하여 확장된 속성을 복사 하고 싶습니다 .아니요일시적으로 전체 SELinux를 비활성화합니다.여기에 제안된 대로. 반품,비틀거리다또 다른 제안 setsebool -P rsync_full_access 1
- 정확히 무엇을 하는지는 잘 모르겠습니다.
이 특별한 경우에 대해서만 문제의 근본 원인을 해결하는 것이 정말 좋을 것입니다. USB 디스크 마운트 지점이 주어지면 /run/media/user/<SOME-UID>
이 경로 또는 이와 유사한 경로에 대해서만 SELinux에서 필요한 권한을 부여할 수 있는 방법이 있습니까?
미리 감사드립니다
답변1
더 많은 연구와 발견을 거쳐이 오래된 응답, 이 옵션을 사용하면 문제가 해결되는 것 같습니다.
--filter='-x security.selinux'
그 남자에 따르면 :
--xattrs, -X
[...]
The above name filtering can be overridden by using one or
more filter options with the x modifier. When you specify
an xattr-affecting filter rule, rsync requires that you do
your own system/user filtering, as well as any additional
filtering for what xattr names are copied and what names
are allowed to be deleted. For example, to skip the
system namespace, you could specify:
--filter='-x system.*'
예:
rsync -aHAXX \
--filter='-x security.selinux' \
--numeric-ids \
--no-inc-recursive \
--delete \
--exclude={"/lost+found"} \
--info=progress2 \
source \
target