rsyncd 서비스 ProtectSystem=off가 유효하지 않습니다.

rsyncd 서비스 ProtectSystem=off가 유효하지 않습니다.

저는 ProtectSystem=full기본적으로 rsyncd 3.2와 함께 Debian 11을 실행하고 있습니다.

커버하고 싶어서 systemctl edit자주 하는 편이에요. 오버레이에 추가하고 싶은 내용은 다음과 같습니다.

### Editing /etc/systemd/system/rsync.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file

[Service]
ProtectSystem=off

### Lines below this comment will be discarded

로그에는 구문 분석 오류가 보고되지 않으며 장치(제 생각에는)가 새 구성으로 다시 로드됩니다.

/etc그러나 예를 들어 특정 경로로 rsync를 시도할 때 여전히 "읽기 전용 파일 시스템" 오류가 발생합니다.

이 한도를 초과할 수 없습니다. 무슨 일인가요? 아니면 이 제한이 문제가 되지 않나요? 이 구성은 Debian 11로 업그레이드하기 전에 Debian 10에서 제대로 작동했기 때문에 이것이 ProtectSystem문제의 원인이라고 생각합니다 .

/etc/rsyncd.conf편집: 이것은 내가 사용하는 구성입니다.

[nameOfMount]
     path = /etc/postfix
     auth users = sysadmin
     secrets file = /etc/rsyncd.secrets
     hosts allow = xxx.xxx.xxx.xxx 
     read only = false
     uid = root
     pre-xfer exec = /usr/local/bin/scriptA.sh
     post-xfer exec = /usr/local/bin/scriptB.sh

pro/post exec 스크립트는 전송되는 파일의 백업 복사본을 만들고 postfix 데몬을 다시 로드합니다. 이러한 오류의 예는 다음과 같습니다.

rsync error: requested action not supported (code 4) at clientserver.c(1098) [Receiver=3.2.3]
/bin/cp: cannot create regular file '/etc/postfix/fileName.yyyymmddd': Read-only file system

답변1

상태 확인부터 시작해 보겠습니다.

systemctl show rsync | grep -E 'ProtectSystem|NoNewPrivileges'

수정되지 않은 시스템에서는 다음이 반환됩니다.

ProtectSystem=full
NoNewPrivileges=yes

NoNewPrivileges이 설정을 사용하면 rsyncdUID가 변경되는 것을 방지할 수 있기 때문에 이런 현상이 나타났습니다 .

이제 데몬이 언제 다시 시작되었는지 확인 rsync하고 기록해 두겠습니다(제 경우에는 22:53이었습니다).

ps -ef | grep '[r]sync --daemon'

root     22600     1  0 22:53 ?        00:00:00 /usr/bin/rsync --daemon --no-detach

오버레이에 두 줄을 추가하면

systemctl edit rsync

[Service]
ProtectSystem=off

그러면 나는 이것을 얻습니다

systemctl show rsync | grep -E 'ProtectSystem|NoNewPrivileges'

ProtectSystem=no
NoNewPrivileges=yes

그러나 rsync데몬은 다시 시작되지 않습니다.

ps -ef | grep '[r]sync --daemon'

root     22600     1  0 22:53 ?        00:00:00 /usr/bin/rsync --daemon --no-detach

사실 저는 이 작업을 수동으로 수행해야 한다는 것을 알았습니다.

systemctl restart rsync
ps -ef | grep '[r]sync --daemon'

root     22770     1  1 22:56 ?        00:00:00 /usr/bin/rsync --daemon --no-detach

그러나 파일 시스템은 여전히 ​​읽기 전용 모드입니다. 추가 줄이 필요합니다.

systemctl edit rsync

[Service]
ProtectSystem=off
NoNewPrivileges=no

그런 다음 다시 시작하세요.

systemctl restart rsync

최종 상태 확인,

systemctl show rsync | grep -E 'ProtectSystem|NoNewPrivileges'

내 시스템에서는 원하는 최종 게임이 반환되어 다음 파일과 디렉터리에 쓸 수 있습니다 /etc.

ProtectSystem=no
NoNewPrivileges=no

관련 정보