2 votes

rsync vers un serveur distant qui n'a pas la même configuration d'utilisateurs que le serveur local produit une erreur de permission

Je suis en train de mettre en place une sauvegarde de mon serveur web sous linux sur un NAS sous FreeBSD. J'ai créé un utilisateur de sauvegarde sur la machine FreeBSD et lancé rsync en tant que root sur la machine locale (serveur web) en utilisant la commande suivante :

rsync -avz /hsphere/ backup\_user@192.168.1.253:/mnt/tank/web\_backup/web01.webhost.net

Cela fonctionne bien pour tous les répertoires appartenant à root, mais lorsqu'il commence à sauvegarder les répertoires appartenant à des utilisateurs ordinaires, je reçois des erreurs de refus de permission.

rsync: recv\_generator: mkdir "/mnt/tank/web\_backup/web01.webhost.net/hsphere/local/home/username/username.com" failed: Permission denied (13)

Je suppose que c'est parce que le "-a" essaie de préserver la propriété des fichiers d'origine, et comme ces utilisateurs n'existent pas sur le serveur distant, il le refusait. J'ai essayé d'exécuter rsync sans les drapeaux -o -g et -p en pensant que cela contournerait le problème, mais j'obtiens la même erreur.

rsync -rltDz /hsphere/ backup\_user@192.168.1.253:/mnt/tank/web\_backup/web01.webhost.net

Si je rsynchronise en utilisant la racine pour le NAS distant, cela réussit, mais je préférerais ne pas avoir à utiliser la racine sur le NAS si je peux l'éviter car cela crée une faille de sécurité. L'utilisateur "backup_user" sur la boîte freebsd est dans le groupe wheel, ce qui devrait lui donner des permissions suffisantes.

Des conseils sur la façon de procéder ?

2voto

Priyan R Points 687

Vous pouvez essayer --fake-super . De la rsync page de manuel :

--fake-super

Lorsque cette option est activée, rsync simule les activités du super-utilisateur en sauvegardant/restaurant les attributs privilégiés via des attributs étendus spéciaux qui sont attachés à chaque fichier (si nécessaire). Cela inclut le propriétaire et le groupe du fichier (s'il ne s'agit pas du groupe par défaut), les informations sur le périphérique du fichier (les fichiers spéciaux et de périphérique sont créés en tant que fichiers texte vides), et tous les bits d'autorisation que nous n'autoriserons pas à définir sur le fichier réel (par exemple, le fichier réel obtient u-s,g-s,o-t par sécurité) ou qui limiteraient l'accès du propriétaire (puisque le super-utilisateur réel peut toujours accéder/changer un fichier, les fichiers que nous créons peuvent toujours être accessibles/modifiés par l'utilisateur qui les crée).

Dans votre cas, puisque vous voulez utiliser --fake-super du côté distant, vous devrez l'invoquer par l'intermédiaire de --rsync-path par exemple :

rsync -avz --rsync-path='rsync --fake-super' /source/ backupuser@remote:/dest/

Lors de la restauration à partir de vos sauvegardes, vous devrez également vous assurer que --fake-super est toujours en vigueur sur le système où sont stockées les sauvegardes.

0 votes

Merci pour la suggestion. J'ai eu la même erreur avec le faux-super ajouté.

0 votes

@John P : Est-il possible que vous ayez une sauvegarde antérieure partiellement terminée qui interfère avec votre dernière tentative ? Si c'est le cas, supprimez toute l'arborescence de votre répertoire de sauvegarde et réessayez avec --fake-super .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X