Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/10/2018, à 09:29

stylik

rsync -- gestion des permissions

Bonjour,

J'ai un peu brutalement changé toutes les permissions de mes dossiers de travail (avec récursivité).
Ce n'est pas professionnel du tout je sais. C'est sans doute l'excès de confiance qui l'a emporté, pensant que les sauvegardes me permettraient de me rattraper. Hélas avec rsync il est plus compliqué que prévu de gérer les seules permissions …
Comme alternative je peux utiliser la commande getfacl  et la correction des permissions fonctionne. Mais d'un point de vue intellectuel ce n'est pas satisfaisant de rester en rade avec rsync …

abréviations :
Permissions : P
dossier d'origine : DO
dossier d'arrivée : DA

Avec rsync le transfert des seules P de DO vers à DA avec les options -rpin ne fonctionne pas comme je voudrais. Rsync transfert aussi  des fichiers (>f.p …) alors que je m'attendais que seules les P soient modifiées (..p…).

La documentation man-delafond.pdf, indique que dans certains cas rsync outrepasse les options indiquées.  Par exemple avec l'option ­-u (­­update ) s'il considère qu'"une différence de format du fichier entre le récepteur et  l'émetteur est (…) suffisamment importante ", un transfert de fichier est effectué.
Par ailleurs le document indique aussi concernant l'option p, ­­perms qu'il y a une notion de 'masque utilisateur du récepteur' à prendre en compte. Ce masque, qui serait propre à DA (si je ne m'abuse), recouvrirait les permissions des fichiers de DO.

Je ne maîtrise pas cette notion de masque utilisateur.
Comment aborder l'analyse comparative des masques utilisateurs des émetteurs (DO) et récepteurs (DA) ?

Merci pour votre aide.

Dernière modification par stylik (Le 18/11/2018, à 10:51)


MSI K9N SLI-2F, MSI R7-260X, Athlon X2, Ubuntu 12.04

Hors ligne

#2 Le 18/11/2018, à 11:00

stylik

Re : rsync -- gestion des permissions

bonjour,

je m'aventure un peu dans l'exploration du paramétrage par défaut des permissions.

J'ai trouvé qu'il existait une option de montage 'default permissions' sur une partition DA (disque amovible).

~$ mount 
/dev/sdc1 on /media/DA type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096) 

Je ne la connaissais pas. 
Auriez-vous des informations sur son fonctionnement ?


MSI K9N SLI-2F, MSI R7-260X, Athlon X2, Ubuntu 12.04

Hors ligne

#3 Le 18/11/2018, à 15:13

stylik

Re : rsync -- gestion des permissions

quelqu'un aurait-il des informations sur les options de montage

  • default_permissions

  • allow_other

Existe-t-il un référentiel des options de montage Unix ?
Dois-je explorer toute la documentation sur les systèmes de fichiers (en anglais j'imagine …) fuseblk, extend, reiserfs etc. ?


MSI K9N SLI-2F, MSI R7-260X, Athlon X2, Ubuntu 12.04

Hors ligne

#4 Le 18/11/2018, à 16:43

bruno

Re : rsync -- gestion des permissions

Bonjour,

Les options que tu cites sont spécifiques à fuse. Je ne les connaissais pas et j'ai trouvé leur description dans :

man mount.fuse
man mount.fuse a écrit :

       default_permissions
              By default FUSE doesn't check file access permissions, the filesystem is free to implement it's access pol‐
              icy or leave it to the underlying file access mechanism (e.g. in case of network filesystems). This  option
              enables  permission  checking,  restricting  access  based  on file mode.  This is option is usually useful
              together with the allow_other mount option.

       allow_other
              This option overrides the security measure restricting file access to the user mounting the filesystem.  So
              all  users (including root) can access the files.  This option is by default only allowed to root, but this
              restriction can be removed with a configuration option described in the previous section.

Pour le problème avec rsync, je ne suis pas sûr de le comprendre.
Ce que je peux dire c'est qu'avec l'option -a (cf. man rsync) les propriétaires/groupes et permissions de fichiers sont conservés. À condition, bien entendu, de faire la synchronisation vers un système de fichiers prenant en charge les droits UNIX (typiquement du ext4).

#5 Le 24/11/2018, à 19:31

stylik

Re : rsync -- gestion des permissions

Merci bruno pour ton interlocution. Et excuse moi pour le délais de réponse …

Situation de départ : permissions sur les disques utilisés

DO  (disque SATA interne, fichiers de travail)              P= 770
DA1 (disque SATA dock externe, sauvegarde)        P= très variables (640, 664, 644, 770, 755 etc.),
DA2 (disque USB, sauvegarde)                         P= 700

(suite post #1)

RESTAURER UNIQUEMENT LES PERMISSIONS AVEC RSYNC : est-ce possible ?

Mon but est de récupérer les P de DO sauvegardées sur DA1.
J'utilise seulement l'option -p pour conserver les permissions des fichiers DO .
Comme DA1 est ma partition de travail je ne veux pas écraser les fichiers.

Or la sortie suivante montre que rsync conserve les P mais écrase aussi les fichiers (>f.p...).
La commande est passée à vide.

# rsync -ripn -v --stats /media/DA1/Home/dossier-test/ /media/DO/Home/dossier-test/ >$(date +%Y%m%d_%H%M)_rsync.log 
# gedit $(date +%Y%m%d_%H%M)_rsync.log 

sending incremental file list 
.d...p..... ./ 
>f..Tp..... .ICEauthority 
>f..Tp..... .Xauthority 
>f..Tp..... .bash_aliases 
>f..Tp..... .bash_history 
>f..Tp..... .bash_logout 
>f..Tp..... .bashrc 
>f..Tp..... .gtk-bookmarks 
>f..Tp..... .gtk-bookmarks~ 
>f..Tp..... .profile 
>f..Tp..... .pulse-cookie 
>f..Tp..... .xsession-errors 
>f..Tp..... .xsession-errors.old 
>f..Tp..... examples.deskt
 
(…) 
Number of files: 2819 
Number of files transferred: 2199 

En ajoutant l'option – ignore-existing (ne pas mettre à jour les fichiers déjà existants chez le destinataire) la sortie est la suivante :

sending incremental file list 
.d...p..... ./ 
(…) 
.d...p..... .gconf/
.d...p..... .gconf/apps/
.d...p..... .gconf/apps/compiz-1/
.d...p..... .gconf/apps/compiz-1/plugins/
.d...p..... .gconf/apps/compiz-1/plugins/unityshell/
.d...p..... .gconf/apps/compiz-1/plugins/unityshell/screen0/
.d...p..... .gconf/apps/compiz-1/plugins/unityshell/screen0/options/
(…) 
.d...p..... .pulse/ 
>f+++++++++ tests_P 
.d...p..... Bureau/ 
.d...p..... Documents/ 
.d...p..... Images/
(…) 
Number of files: 2819 
Number of files transferred: 1

J'approche du but.
Cependant les fichiers récursifs n'apparaissent pas sur le verbatim. Mais uniquement les répertoires.
De plus il y a le transfert d'un fichier vers DO.

Quelles options devrais-je ajouter pour qu'rsync ne transfère QUE les permissions des fichiers ?
Est-ce une utilisation 'exclusive' possible de rsync ?

Rsync compare des inodes composés de dizaines d'attributs (horodates, taille, permissions, etc.) et il ne semble pas prévu pour gérer les métadonnées au cas par cas.

(suite post #2)

MASQUE RECEPTEUR ?

La seconde question est celle du masque.

Il n'y a qu'un seul opérateur sur mon ordinateur.
La commande umask renvoie les masques suivants :
masque utilisateur $    : 0002
masque administrateur # : 0022

Ils s'appliquent à la création de dossiers (permissions par défaut).
$ ou # sont propriétaires de DO, DA1.

En principe rsync n'utilise pas les masques quand il n'y a pas création de fichier.
C'est le cas dans cet exercice puisque qu'il s'agit d'un simple transfert des permissions de DA1 vers DO.

J'ai changé de configuration pour tester rsync.

DO  (disque SATA interne, fichiers de travail)            P= 770
DA2 (disque USB, sauvegarde)                 P= 700

Je sauvegarde chaque jour DO vers DA2 de la façon suivante :

$rsync -rlin --stats --force --delete-excluded --ignore-errors --size-only --backup --backup-dir=/media/DO/sg_incrémentale/`date +%y%m%d_%H%M` /media/DO/Bureau/ /media/DA2/Bureau/ >/home/…/rsync/$(date +%Y%m%d_%H%M)_rsync_bureau.log

$ gedit rsync/$(date +%Y%m%d_%H%M)_rsync_bureau.log

>f.sT...... fichier.gsb 
>f+++++++++ fichier.pdf 
>f.sT...... fichier.odt 
>f.sT...... fichier.odt 
>f.sT...... fichier.odt 
(…) 

Le verbatim indique que les fichier DA2 sont écrasés (>f). L'horodate est mise à jour à la date du transfert (sT).

En utilisant l'option -p la sortie est la suivante

$ rsync -rlpin --stats --force --delete-excluded --ignore-errors --size-only --backup –backup-dir=/media/DO/sg_incrémentale/`date +%y%m%d_%H%M` /media/DO/Bureau/ /media/DA2/Bureau >/home/…/rsync/$(date +%Y%m%d_%H%M)_rsync_bureau.log

$ gedit rsync/$(date +%Y%m%d_%H%M)_rsync_bureau.log

.d...p..... ./
.f...p..... fichier.odt
.f...p..... fichier.odt
.f...p..... fichier.odt
.f...p..... fichier.odt
>f.sTp..... fichier.odt
.f...p..... fichier.odt
.f...p..... fichier.odt
.f...p..... fichier.odt
(…) 

Le changement de P apparaissent dans le verbatim. Mais pour autant elles ne seront pas modifiées d'un iota  dans DA2 (sauvegarde en dur testée). Les répertoires et fichiers de DA2 resteront à 700/600.


Le SyF natif du DA2 amovible USB est HPFS/NTFS/exFAT comme l'indique la commande suivante ;

# fdisk -lu /dev/sdX 
Périphérique 		Amorce  	Début        	Fin     		 	Blocs     	Id  	Système 
/dev/sdj1            			2048  		1953523116   		976760534+   	7  	HPFS/NTFS/exFAT 

Le système de fichier natif HPFS/NTFS/exFAT (Microsoft) accepte les commandes Unix me semble-t-il.
Mais il n'est pas 'maître à bord' de DA2 car si j'ai bien compris c'est le système de fichier virtuel FUSE qui commande.
C'est la première fois que je réalise l'existence de ce qui peut être qualifié de 'masque matériel', qui s'applique au montage de la partition. Les options 'rw' et 'default_permissions' de FUSE rendent caduque l'option p de rsync.

Est-ce une technique de sécurité réseau fréquente pour gérer le montage de partitions distantes/partagées/SSH/etc ?


J'ai traduis l'option defaut_permissions du man fuse de cette façon :

« By default FUSE doesn't check file access permissions, the filesystem is free to implement it's access policy or leave it to the underlying file access mechanism (e.g. in case of network filesystems). This  option enables  permission  checking,  restricting  access  based  on file mode.  This is option is usually useful together with the allow_other mount option.»

«Par défaut FUSE  ne se soucie pas des permissions de fichier : le SyF natif gère les permission, ou alors c'est le mécanisme sous-jacent qui s'occupe des accès aux fichiers (un SyF réseau par exemple). L'option defaut_permissions permet à FUSE d'imposer sa police d'accès. Cette option est inutile si l'option 'permettre_à_tous' est utilisée. »

Les options de montage FUSE peuvent-elles être modifiées vu qu'il s'agit d'options 'embarquées' ? 
Je crains qu'ajouter une ligne au /etc/fstab ne suffise pas à les écraser.
La commande chmod sur DA2 ne change rien par exemple.

# ll /media/DA2/fichier.odt
-rw------- 1 $ $ 1218551 nov.  17 22:40 fichier.odt 

# chmod 750 /media/DA2/fichier.odt 
# ll /media/DA/fichier.odt 
-rw------- 1 $ $ 1218551 nov.  17 22:40 fichier.odt 

À creuser.


Par ailleurs, la notion de « masque utilisable du récepteur » dans la définition de l'option -p (--perms) pour rsync par Delafond m'a intrigué. Il écrit ceci :

« p, ­­perms 		Cette option entraîne la mise à jour des permissions distantes pour qu'elles soient identiques aux permissions locales. Sans cette option, tous les fichiers existants (y compris les fichiers mis à jour) gardent leur permissions actuelles, tandis que les nouveaux fichiers reçoivent des permissions basées sur les permissions du fichier source mais masquées par le masque utilisateur du récepteur (ce comportement est identique aux autres utilitaires de copie de fichier, tel que cp). »

À quoi correspond « masque utilisateur du récepteur » dans la définition ?
Est-ce celui du propriétaire du système de fichier ?
Est-ce un masque matériel ?

Tes commentaires m'ont déjà permis d'avancer.
J'espère que ça ne t'ennuie pas trop de répondre encore à ces questions.


MSI K9N SLI-2F, MSI R7-260X, Athlon X2, Ubuntu 12.04

Hors ligne