Giorno: Marzo 15, 2023

IT
Matteo Lavaggi

Utilizzare RSYNC su SSH con Chiave Privata per sincronizzare file di proprietà di www-data e preservare accesso e modification time

Rsync per poter impostare correttamente il modification time richiede di essere eseguito con l’utente PROPRIETARIO del file, in quanto il mtime è un attributo che richiede un access super user. Non basta avere l’accesso in scrittura per esempio tramite permessi 664/775 come gruppo. Ovviamente non è consigliato utilizzare una connessione ssh tramite publickey per un utente che non è dotato di accesso shell come l’utente www-data. Per risolvere è necessario usare la connessione ssh tramite un utente dotato di accesso shell e chiave privata su entrambe le macchine, ed eseguire il comando rsync sulla macchina remota scalando i priviligi dall’utente che apre la connessione ssh all’utente www-data. In questo modo la connessione ssh viene aperta dall’utente normale , e poi il comando ssh viene eseguito tramite sudo dall’utente normale come account di servizio www-data:   You have to differentiate 2 things: who establishes the SSH connection. which remote user owns the files that you want to copy. Overview (srcmachine) (rsync) (destmachine) srcuser — SSH –> destuser | | sudo su jenkins | v jenkins Let’s say that you want to rsync: From: Machine: srcmachine User: srcuser Directory: /var/lib/jenkins To: Machine: destmachine User: destuser to establish the SSH connection. Directory: /tmp Final files owner: jenkins. Solution rsync –rsync-path ‘sudo -u jenkins rsync’ -avP

Leggi Tutto »