Rsync+permission denied

Bonjour,
Je veux transférer des fichiers de mon serveur-debian (à la maison) sur le serveur de mon travail (serveur-travail).
Sur le serveur travail, j’ai monté via fstab un disque dur IDE de 80 GB formaté en ext4.
Je me connecte à mon serveur-debian chez moi via ssh et j’envoie :

[code]# rsync -e “ssh -p2009” -avz /media/diskexterne/classe/fables-seances enpt@toto6976.no-ip.biz:/media/classe
enpt@toto6976.no-ip.biz’s password:
sending incremental file list
fables-seances/
rsync: recv_generator: mkdir “/media/classe/fables-seances” failed: Permission denied (13)
*** Skipping any contents from this failed directory ***

sent 148 bytes received 16 bytes 19.29 bytes/sec
total size is 133775 speedup is 815.70
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9][/code]
Le fstab du serveur-travail ainsi que les droits:

[code]# /etc/fstab: static file system information.

Use ‘blkid’ to print the universally unique identifier for a

device; this may be used with UUID= as a more robust way to name devices

that works even if disks are added and removed. See fstab(5).

proc /proc proc nodev,noexec,nosuid 0 0

/ was on /dev/sda1 during installation

UUID=ac5cb11b-af29-4e6f-be08-184ea2304d56 / ext4 errors=remount-ro 0 1

swap was on /dev/sda5 during installation

UUID=255b9590-2ea6-45b2-b320-e6030db3ffc6 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

nas01-ENR sur 192.168.78.252

Monter NAS

//192.168.78.252/donnees_enseignants /media/nas01 cifs credentials=/root/.smbcredentials,iocharset=utf8,gid=100,uid=1$

Disque Maxtor 80 GB

UUID=8a2a7a47-b319-4981-9ff1-2c8ca03f61ba /media/classe ext4 defaults 0 0[/code]

/media$ ls -l total 8 drwxr-xr-x 3 root root 4096 mars 31 09:29 classe lrwxrwxrwx 1 root root 7 oct. 17 21:55 floppy -> floppy0 drwxr-xr-x 2 root root 4096 oct. 17 21:55 floppy0 drwxrwxrwx 23 1000 users 0 févr. 9 2010 nas01

par défaut, seul root a les droits complets sur la racine d’une partition, ce n’est donc pas un problème de rsync.
le plus simple est de créer en amont ton répertoire /media/classe/fables-seances sur ton serveur-travail en changeant son propriétaire pour enpt.

çà va mieux quand on le dit :stuck_out_tongue: J’ai cherché un moment pourquoi root avait les droits :unamused:
merci

Tu confirmes ?

Ça me semble correct, mais du coup seul cet utilisateur pourra modifier le contenu du répertoire.
Sinon dans le wiki on a pas mal d’exemple et d’aide a dispo : isalo.org/wiki.debian-fr/Rsync

Du moment que je peux via ssh déposer depuis chez moi ce que je veux sur le serveur-travail, pas de problème.
Là bas seul enpt est connecté au seveur

A terme je vais utiliser aussi rsync pour de la sauvegarde. Pour le moment il va me servir à transférer mes 25 GB sur le disque dur du serveur travail.

si l’on veut que plusieurs utilisateurs puissent modifier ce répertoire, de mon point de vue le plus propre est d’utiliser un groupe dédié, par exemple sshusers :

#mkdir /media/classe/partage
#chgrp sshusers /media/classe/partage
#chmod g+ws /media/classe/partage

Je ne serai jamais que le seul à utiliser ce serveur. Tu crois que c’est nécessaire ?

non, ce n’est absolument pas nécessaire, c’était juste pour répondre à la remarque de Mimoza.
si tu n’as pas ce besoin, autant rester simple :wink:

Tant qu’on y est, ma commande rsync convient-elle pour copier les dossiers et tous les sous-dossiers + le port ssh spécifique du serveur travail ? Si je veux que le transfert aille plus vite, je compresse au départ mais à l’arrivée, sur le serveur-travail, les fichiers seront-ils compressés ?

commande rsync:

la commande a l’air correcte, mais ça ne mange pas de pain de la lancer d’abord en rajoutant l’option de simulation -n.
sinon la compression n’affecte que le transfert, pas les fichiers finaux.

Je ne comprends pas très nettement la signification des permissions :

/media/classe$ ls -l total 20 drwx------ 2 root root 16384 mars 31 09:29 lost+found drwxr-xr-x 3 enpt root 4096 mars 31 14:54 ressources

Pour le répertoire ressources
Qui est root ?
Si enpt est propriétaire du fichier et a tous les droits dessus, pourquoi root ne les a-t-il pas alors qu’il est…“root” ???
Le groupe-utilisateur “root” et l’utilisateur “root” n’ont pas les mêmes droits ?
Je croyais que tout ce qui se référait à “root” avait tout les droits !
C’est pas clair chez moi la différence entre proprio et groupe proprio :unamused:

Si je veux effacer au fur et à mesure les fichiers présents sur le serveur-debian (source), je dois ajouter quoi à la commande rsync : -delete ?

L’argument -a préserve les droits : qu’est-ce-que çà signifie exactement ? Si toto a les droits au départ (source) il sera proprio du fichier à l’arrivée (cible) ; dans ce cas c’est pas cool. Vaux mieux pas passer l’argument -a si je veux que ce soit enpt le proprio.

c’est le groupe root à ne pas confondre avec l’utilisateur root.
tout comme il existe un groupe enpt dont fait partie ton user enpt.

l’utilisateur root (uid 0) a les mêmes droits que le propriétaire de n’importe quel fichier du système (plus le droit de changer les droits).

si ton répertoire est dans cet état là, c’est à cause de ta commande “chown enpt ressources” qui n’a changé que le propriétaire du répertoire mais pas son groupe.
pour changer également le groupe tu peux faire un “chgrp enpt ressources” ou bien du 2 en 1 avec “chown enpt:enpt ressources”

pour réviser les droits unix : debian.org/doc/manuals/debi … ermissions

non, l’option --delete supprime les fichiers de la destination qui ne sont pas dans la source.
et vouloir supprimer les fichiers pendant le transfert me paraît être une mauvaise idée par principe, mais si tu y tiens, c’est l’option --remove-source-files qu’il faut utiliser.

qu’un fichier avec les droits 644 à la source aura les droits 644 à la destination. et c’est l’option -p qui gère çà, l’option -a est plus globale.
sinon tu confonds droits des fichiers et propriétaires/groupes, cf ci-dessus.

Merci c’est plus clair comme çà.

Autre chose : le man de rsync dit ceci :

Donc si je l’ajoute à la commande, il va ignorer le fichier tata s’il retombe dessus. Mais de quelle manière, par rapport à son nom, son poids, sa somme de contrôle ?

[quote]si ton répertoire est dans cet état là, c’est à cause de ta commande “chown enpt ressources” qui n’a changé que le propriétaire du répertoire mais pas son groupe.
pour changer également le groupe tu peux faire un “chgrp enpt ressources” ou bien du 2 en 1 avec “chown enpt:enpt ressources”[/quote]
Ben j’allais justement te le proposer !!

par rapport au nom.
ce qui veut dire que le fichier n’est jamais mis à jour après sa copie initiale éventuelle.

sinon dans le fonctionnement général de rsync, ce qui déclenche une mise à jour de fichier c’est son changement de taille ou de date.

Si tu arrives à transférer tes dossiers/fichiers, je n’ajoute rien.

Si tu as des problèmes de refus ou de droits, fais ton transfert en root sur la machine de commande et vers /tmp sur la machine de réception. Il te faut ensuite déplacer de /tmp vers le dossier définitif en root.

C’est quoi cette phrase…!?! Tu en as trop dit ou pas assez :whistle:

Je fais un essai avec un fichier qui a des sous-repertoires. C’est vachement long !

#rsync -e "ssh -p2009" -ravz ...

Pour le moment les fichiers arrivent sur le serveur-travail…les uns après les autres… :unamused: …toutes les 4 secondes !!!

en supposant que tu as une connexion ADSL classique avec un débit d’upload d’environ ~120ko/s et que tu comptes vraiment transférer 25Go, c’est sûr que t’en as pour un moment…

… 36h à la louche (en estimant à 15Go avec la compression) :033