
두 웹서버 간에 rsync를 설정하겠습니다. 기본 서버가 충돌할 경우를 대비해 보조 서버의 기본 서버에서 데이터를 백업하는 것을 목표로 하고 있습니다. 내 질문은 rsync 목적으로 기본 서버에 사용자 계정을 설정하는 것과 관련이 있습니다.
분명한 이유로 여기서는 "루트" 사용자 계정을 사용하고 싶지 않습니다. 따라서 나는 rsync 목적으로만 사용되는 다른 계정을 설정하는 것을 목표로 하고 있습니다. 내가 이해한 바에 따르면 이 사용자에게는 전송해야 할 모든 파일(아파치 구성, 사용자 Linux 파일, www-data)에 대한 읽기 권한이 필요합니다.
그러한 권한을 가장 잘 설정하는 방법은 무엇입니까? rsync 사용자에게 루트 권한을 부여해야 합니까, 아니면 그러한 백업을 위해 사용자를 생성하는 더 안전한 방법이 있습니까?
답변1
두 서버를 연결하는 네트워크가 안전하다면(예: 사무실의 로컬 네트워크) 데몬 모드에서 rsync를 사용하여 루트로 연결할 수 있습니다. 이렇게 하면 연결을 위해 SSH를 사용하지 않습니다.
보조 시스템에서 /etc/rsyncd.conf
다음 내용으로 파일을 생성합니다.
[all]
path = /
read only = no
uid = 0
gid = 0
hosts allow = primary-host
auth users = backupuser
secrets files = /etc/rsyncd.secrets
exclude = /tmp/ /var/tmp/ /var/cache/ /proc/ /sys/ /dev/ /run/ /boot/
이제 다음과 같은 파일을 만듭니다 /etc/rsyncd.secrets
.
backupuser:thisisasecretpassword
루트만 파일을 읽을 수 있도록 설정합니다.
# chown root /etc/rsyncd.secrets; chmod 400 /etc/rsyncd.secrets
이제 rsync가 데몬으로 시작되었는지 확인해야 합니다. 배포판에 따라 다르며 Debian에서는 행을 편집하고 로 /etc/default/rsync
변경하고 실행합니다 (systemd를 실행하는 경우 실행 ).RSYNC_ENABLE
RSYNC_ENABLE=true
/etc/init.d/rsync start
systemctl enable rsync; systemctl start rsync
이제 기본 호스트에서 rsync를 실행하고 다음과 같이 복제하는 데 필요한 모든 것을 보조 호스트로 보낼 수 있습니다.
# rsync -ai /var/www/ backupuser@secondary-host::all/var/www/
이 경우 Rsync는 비밀 비밀번호를 묻습니다.