Estou executando o Debian 11 com rsyncd 3.2, que tem ProtectSystem=full
como padrão.
Eu gostaria de substituir isso, então estou usando systemctl edit
para fazer isso. Aqui está o que estou colocando na substituição:
### 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
Os logs não relatam erros de análise com isso e a unidade (eu acho) recarrega com a nova configuração.
No entanto, ainda recebo erros de "sistema de arquivos somente leitura" ao tentar rsync nos caminhos /etc
(por exemplo).
O que há de errado para que eu não possa substituir essa restrição? Ou essa restrição não é o problema? A configuração estava funcionando bem no Debian 10 antes de atualizar para o Debian 11, então presumo que ProtectSystem
esteja causando o problema.
EDIT: Aqui está a configuração que /etc/rsyncd.conf
estou usando:
[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
Os scripts pro/post exec fazem cópias de backup dos arquivos que estão sendo transferidos e recarregam o daemon postfix. Os erros destes são, por exemplo:
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
Vamos começar com uma verificação de status
No meu sistema não modificado, isso retorna
Eu percebi
NoNewPrivileges
porque essa configuração impedersyncd
a alteração de seu UID.Agora vamos ver a hora em que o
rsync
daemon foi reiniciado e anotar (22:53 no meu caso):Se eu adicionar suas duas linhas à substituição,
eu então entendo isso
Mas o
rsync
daemon não é reiniciado:E, de fato, acho que devo fazer isso manualmente
No entanto, o sistema de arquivos ainda está no modo somente leitura. Precisamos da linha extra:
Seguido por um reinício,
E uma verificação final de sanidade,
No meu sistema, isso retorna o jogo final desejado, o que me permite gravar em arquivos e diretórios abaixo
/etc
: