Autorisé user à sauvegardé directement (rsync) sur /dev/sddx

Salut,

Je souhaite que mon user (loreleil) puisse effectuer des sauvegardes (rsync: distante vers local) sur un dd externe monter sur /mnt

[code]# mount -t ext4 /dev/sdd1 /mnt

mount -t ext4 /dev/sdd2/mnt

mount -t ext4 /dev/sdd3 /mnt

[/code]
ps: Monté à tour de rôle … :033

/dev/sdd1 … sauvegarde Racine
/dev/sdd2 … sauvegarde Home
/dev/sdd3 … sauvegarde Var

Le but du jeux, effectuer des sauvegardes distincts des partitions de mon dédié kimsuffi.

Configuration de celui-ci :

“/” , “/home” , “/var” séparées.

Fichier exclure :

/home/loreleil/exclure_ovh_R (Racine)
/home/loreleil/exclure_ovh_H (home)
/home/loreleil/exclure_ovh_V (var)

Mon souci, l’user loreleil n’a pas les permissions requises. Ici pour home.

[code]:~$ rsync -av --del --exclude-from=/home/loreleil/exclureOVH -e ssh MON_SERVEUR@xxx.xxx.xxx.xxx:/home /mnt
receiving incremental file list
rsync: opendir “/home/lost+found” failed: Permission denied (13)
rsync: recv_generator: mkdir “/mnt/home” failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
home/

sent 304 bytes received 1289 bytes 3186.00 bytes/sec
total size is 2189833 speedup is 1374.66
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1526) [generator=3.0.7]
loreleil@machine1:~$
[/code]
Bien sur lorsque root créer un dossier /mnt/sauvegarde_serveur et que j’en modifie le propriétaire et son group

# chown -R loreleil:loreleil /mnt/sauvegarde_serveur

C’est tout bon.

[code]:~$ rsync -av --del --exclude-from=/home/loreleil/exclureOVH -e ssh MON_SERVEUR@xxx.xxx.xxx.xxx:/home /mnt/sauvegarde_serveur
receiving incremental file list
home/

(…)

sent 746 bytes received 2192096 bytes 626526.29 bytes/sec
total size is 2189833 speedup is 1.00
loreleil@machine1:~$
[/code]

Mais ce n’est pas là le but que je recherche :033

Je ne veux surtout pas devoir créer un dossier le montage /mnt et encore moins faire appel à root pour les sauvegardes !

Hors de question, sur ces deux derniers points . :snooty:

je pense avoir résumer dans les grandes lignes, (j’avais quelque chose se rapportant à cette problématique sur la toile, mais pas moyen d’y remettre la main)

Comment remédier à ceci ???

Merci … :wink:

Salut,

La solution est elle si simpliste, que dans ma bêtise je serai passé à côté ???

Il y est des jours ou ma connerie prend le dessus, une piste svp … :wink:

$ rsync -av --del --exclude-from=/home/loreleil/exclureOVH -e ssh MON_SERVEUR@xxx.xxx.xxx.xxx:/home /mnt1) Pour te connecter sur ton serveur SSH, tu dois fournir un utilisateur.
Exemple : si je veux me connecter en “toto” sur “monserveur”, j’utilise la commande suivante :$ ssh toto@monserveurpuis je rentre mon mot de passe si je n’ai pas paramétré de clés SSH.

  1. Si tu ne fournis pas d’utilisateur, comme dans le cas suivant :$ ssh monserveurc’est l’utilisateur que tu es en train d’utiliser qui sera utilisé par défaut, autrement dit “loreleil” dans ton cas.
    Evidemment, si “loreleil” n’existe pas sur “monserveur”, tu ne pourras pas t’y connecter de cette façon.

Donc pour commencer, avec quel utilisateur te connectes-tu sur ton serveur distant ? Je demande ça car ça a son importance au niveau des droits utilisateurs.

Ensuite, est-ce que toi (l’utilisateur “loreleil” local) tu es en mesure d’écrire normalement sur ton disque de sauvegarde externe une fois qu’il est monté ?

Salut Cluxter …

Pas de souci là dessus, j’ai simplement tronqué en postant sur le forum le nom d’utilisateur par “MON_SERVEUR”, moins je laisse de trace mieux je m’en porte … :wink:

Ceci dit, hier, lorsque que j’ai lancé se sujet, j’avais laissé l’IP du dédié apparaître ici juste après “C’est tout bon.” (post précédent) …

Gros naze, je ne m’en suis aperçu que ce matin … :mrgreen:

En résumer, pas de souci de connexion. :wink:

Non, et je ne sais comment y remédier :12

[quote]:~$ rsync -av --del --exclude-from=/home/loreleil/exclureOVH -e ssh MON_SERVEUR@xxx.xxx.xxx.xxx:/home /mnt
receiving incremental file list
rsync: opendir “/home/lost+found” failed: Permission denied (13)
rsync: recv_generator: mkdir “/mnt/home” failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
home/[/quote]

Je ne sais pas ou (?) interagir …

[quote]Non, et je ne sais comment y remédier[/quote]Ca se règle au niveau des permissions dans le “/etc/fstab”.
Que contient-il chez toi ?

Sur le dédié :

[code]root@ksxxxxxxx:~# cat /etc/fstab

/dev/sda1 / ext4 errors=remount-ro 0 1
/dev/sda2 /home ext4 defaults 1 2
/dev/sda3 /var ext4 defaults 1 2
/dev/sda5 /save ext4 defaults 1 2
/dev/sda6 swap swap defaults 0 0

root@ksxxxxxxxx:~#
[/code]
En local :

[code]:~# cat /etc/fstab

/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 defaults 0 0

/ was on /dev/sda1 during installation

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext3 errors=remount-ro 0 1

/home was on /dev/sda6 during installation

UUID=xxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext3 defaults 0 2

swap was on /dev/sda5 during installaxtion

UUID=xxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxcad none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/scd1 /media/cdrom1 udf,iso9660 user,noauto 0 0
:~#
[/code]

OK donc soit tu ajoutes une entrée dans ton “/etc/fstab” qui autorise les utilisateurs à monter la partition et tout et tout, mais en fait ce n’est pas vraiment ce que tu veux, après relecture de ta demande.

Donc en fait, une fois que tu as monté ta partition (en root forcément puisque c’est le seul à avoir le droit), tu crées un répertoire sur la partition que tu viens de monter et dans laquelle tu veux écrire. Je suppose que tu as monté une de tes partitions dans “/mnt/backups” :[quote]# mkdir /mnt/backups/loreleil-home[/quote]et maintenant que tu as un répertoire que va te servir de backups dans cette partition, il faut que tu donnes à ce répertoire le droit d’écriture pour l’utilisateur “loreleil” :[quote]# chown loreleil /mnt/backups/loreleil-home[/quote]L’utilisateur “loreleil” peut donc maintenant écrire dans “/mnt/backups/loreleil”. Voilà déjà un problème qui devrait être résolu. :slightly_smiling:

Teste donc si après ça :

  1. tu as le droit d’écrire dans le répertoire de ton disque externe ;
  2. “rsync” fait ce que tu veux (je pense que non donc si c’est le cas redonne nous les nouveaux messages d’erreurs).

Je te donne ma façon de sauvegarder mon serveur, à partir de 2 machines locales :

sur machine 1 : allumé avec DD1 (DD de sauvegarde serveur uniquement)
DD2 (Squeeze servant au montage)
Je monte le serveur sur /mnt/autre

sur machine 2 (qui sert d’exécuteur) : se brancher sur serveur
ssh -p N°duport 192.168.1.2 (là c’est mon IP locale car mon serveur est chez moi)
puis commandes de sauvegarde :
rsync -av --del --exclude-from=/root/exclure / ricardo@192.168.1.6:/mnt/sauve
(192.168.1.6 est l’IP de la machine 1)

            rsync -av --del /home [ricardo@192.168.1.6](mailto:ricardo@192.168.1.6):/mnt/sauve
  (je n'exclus rien de /home sur le serveur car je n'ai que rarement des mouvements)

@ Cluxter

Ça, Cluxter je sais faire …

La sauvegarde de la racine “/” du dédié en local avec rsync.

Cela tombe bien, root est présent !

À savoir, il montera la partition /dev/sdd1 sur /mnt. Il n’y créera aucun dossier !!!

S’en est terminé pour root. (pour l’instant, il reviendra …)

L’user loreleil prend le relais mais ne veut en aucun cas créer un dossier, lui non plus !!!

loreleil avec l’accord de root, souhaites que la sauvegarde de la racine (du dédié) soit implanter Directement sur la partition /dev/sdd1

Et Root ne veux en aucune manière intervenir durant les phases de sauvegardes, il s’y refuse catégoriquement !!!

Root, en n’impose ! Aucune création de dossier dans /mnt !

Il exige de retrouver uniquement (dans /mnt) le contenu de la racine “/” et non pas un dossier (conteneur) ayant pour appellation “sauvegarde_serveur” ou tout autre nom d’oiseau … :mrgreen:

Il est têtu ce cochon et buté, pour bien faire … :033

loreleil aussi … :hand:

loreleil lance la sauvegarde de “/” (dédié) sur /mnt.

Il est confronté à ceci :

[quote]:~$ rsync -av --del --exclude-from=/home/loreleil/exclureOVH -e ssh MON_SERVEUR@xxx.xxx.xxx.xxx:/home /mnt
receiving incremental file list
rsync: opendir “/home/lost+found” failed: Permission denied (13)
rsync: recv_generator: mkdir “/mnt/home” failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
home/

sent 304 bytes received 1289 bytes 3186.00 bytes/sec
total size is 2189833 speedup is 1374.66
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1526) [generator=3.0.7]
loreleil@machine1:~$ [/quote]

loreleil fera appel à root pour les montages de /dev/sdd2 et /dev/sdd3 une fois la sauvegarde Racine terminé.

/dev/sdd2 … sauvegarde Home
/dev/sdd3 … sauvegarde Var

Comment autorisé l’user loreleil à effectué les sauvegardes exigées (par son boss: Root) sans avoir à créer un quelconque dossier dans /mnt … ???

@ ricardo même punissions … :shhh: aucune création de dossier sur /mnt une fois monté

Cinq doigts les amis … :wink:

Donc si je comprends bien tu veux que ton utilisateur “loreleil” puisse écrire sur une partition montée par “root” et sans créer de sous dossier (désolé, j’avais zappé cette partie).

Dans ce cas, je ne vois pas 36 solutions, il faut autoriser “loreleil” à écrire sur toute la partition (sinon j’ai du mal à voir comment on va pouvoir écrire à la racine de la partition ; cela ne signifie pas pour autant que l’utilisateur pourra écrire dans n’importe quel sous-répertoire).

Donc 4 solutions possibles (en supposant que ta partition soit montée dans “/mnt/backups”) :

  1. On rend “loreleil” propriétaire de la partition :# chown loreleil /mnt/backupssans oublier de lui donner le droit d’écrire sur la partition en question :# chmod u+w /mnt/backups
  2. On change le groupe de la partition par un dont fait partie “loreleil” (disons le groupe “loreleil” puisque “loreleil” fait obligatoirement partie de son propre groupe) :# chgrp loreleil /mnt/backupset on donne le droit à ce groupe d’écrire sur la partition :# chmod g+w /mnt/backups
  3. On ajoute “loreleil” au groupe “root” puisque logiquement la partition fait par défaut partie du groupe “root” (il se peut que ce soit le groupe “disk”, je ne sais plus, ça dépend des cas en fait) :# usermod -G root loreleil
  4. On ajoute une entrée dans “/etc/fstab” pour autoriser l’utilisateur à écrire sur la partition.

A priori il ne veut pas créer de dossier dans /mnt.

Ce que tu veux faire c’est écrire directement sur /mnt sans passer par sudo, à part changer les droits sur /mnt… je vois pas d’autre solution et j’en comprend pas l’intéret (c’est comme écrire directement sur /).

Pourquoi ne pas vouloir créer un dossier puisque les sauvegardes seront de toute manière à la racine de tes sdd?

Sinon tu passes des options au moment du mount a tes risques et périls du genre,

mount -t ext4 -o user,rw /dev/sdd1 /mnt

ou tu monte tes partitions dans ton home.

[quote]A priori il ne veut pas créer de dossier dans /mnt.[/quote]Dans mon exemple, “/mnt/backups” est le point de montage de la partition, pas un sous-répertoire de la partition. Dans son cas la partition est montée dans “/mnt/sauvegarde_serveur”. Enfin si j’ai bien compris ? Autrement dit il suffit de remplacer “/mnt/backups” par “/mnt/sauvegarde_serveur” partout dans mon exemple.

Il veut monter sa partition directement à la racine de /mnt i.e. copier les fichiers sur /mnt et non sur /mnt/xxx
Et oui en créant un dossier dans /mnt c’est plus facile.

En clair, on peux traduire sa demande par “je veux copier un fichier de mon /home sur /mnt (sans créer aucun dossier) sans passer par sudo”

Balle au centre … :033

/dev/sdd1 monté sur /mnt.

Aucune création de répertoire et encore moins de sous répertoire sur /mnt !

Et bien peu importe, il suffit de monter la partition dans “/mnt”, ça c’est juste un détail. Remplacez “/mnt/backups” par “/mnt” dans mon exemple.

et changer les droits sur /mnt… (en meme temps je vois pas trop ce qu’on peu faire d’autre)

Et passer par sudoers on a le droit?
Par contre tu peux nous expliquer pourquoi tu tiens absolument a sauvegarder sur une partition qui appartient à root?

@ Cluxter

Je l’avais compris dans ce sens …

Retour sur ton … # post 4 > autorise-mon-user-a-sauvegarde-rsync-distant-sur-mnt-t35995.html#p363219

Cette option Oui ! me plaît bien !!! :smiley: Et root s’en réjouit !!! :023

C’est ce qui m’apparaît être le plus serin.

Et si j’ai bien compris, root et seul root restera seul Maître à bord !!!

Root Autoriserai loreleil à écrire sur la partition !

ps: entendons nous bien, … aucune création de dossier où sous dossiers quelconques 8)

@ sebB

Cela facilitera grandement la tâche lors d’une éventuel restauration … :wink:

sebB, promis !!! je développerai ceci un peu plus tard … croix de bois, croix de fer … :wink:

Que quelqu’un m’arrête si je ne me trompe, mais il n’est pas possible de dire dans le “fstab” qui est autorisé à écrire sur une partition lorsque l’on utilise le système de fichiers “extX” sans modifier au minimum à quel groupe appartient l’utilisateur (c’est possible avec du NTFS mais c’est un hack tellement dégueulasse que c’est encore pire que tout).

Avec certains systèmes de fichiers on a une option “uid” qui permet de préciser précisément quel utilisateur est autorisé à écrire sur la partition, mais pas avec le “extX”.

Je pensais qu’il était donc possible de le faire en utilisant les attributs étendus des fichiers (qui s’active pour “extX” en utilisant l’option “user_xattr” lors du montage) mais en fait non. On trouvera ici la liste des attributs étendus :

lea-linux.org/documentations/ind … 3%A9tendus

Il faut donc utiliser les ACL (Access Control List) :

lea-linux.org/documentations/ind … 3%A9tendus

Mais au final, je pense que tu ne pourras pas couper au fait qu’il faille modifier les droits de “/mnt” à un moment donné ou à un autre, même avec les ACL. Je ne suis pas du tout sûr de ce que j’avance donc n’hésitez pas à préciser mes propos !

L’ami, je tiens tout ça, bien au chaud …

Le bon vin requière un temps mini avant dégustation, la décantation … :wink:

Saluts,

la nuit portant conseil …

Pourquoi faire compliqué, quand ton peut faire simple … :033

J’avais un blocage. :108

Mon neurone était convaincu qu’en créant un dossier(s) et sous-dossier(s) dans la partition monté sur /mnt, que ceci aurait pour conséquence lors d’une restauration (d’un dossier, d’un fichier, où encore la racine) de local vers distant, rsync restaurerait le contenant (sauvegarde_serveur) et son contenu (home) … la merde quoi ! :118

Or, ce matin j’ai pris la résolution de vérifier ceci.

J’ai donc créer un dossier (sur le dédié) /home/mon_beau_serveur/ESSAISAUVEGARDE.

En local : /mnt/sauvegardeOVH/01112011. (chown -R) (chmod u+w )

Sauvegarde distante > local que j’ai testé puis lancé

[code]:~$ rsync -avi --dry-run --partial --del --exclude-from=/home/loreleil/exclureOVH -e ssh mon_beau_serveur@xxx.xxx.xxx.xxx:/home/mon_beau_serveur/ESSAISAUVEGARDE /mnt/sauvegardeOVH/01112011/
receiving incremental file list
created directory /mnt/sauvegarde_OVH/01112011
cd+++++++++ ESSAISAUVEGARDE/

f+++++++++ ESSAISAUVEGARDE/essai

sent 308 bytes received 100 bytes 272.00 bytes/sec
total size is 38 speedup is 0.09 (DRY RUN)
loreleil@machine1:~$
[/code]

[code]:~$ rsync -avi --partial --del --exclude-from=/home/loreleil/exclureOVH -e ssh mon_beau_serveur@xxx.xxx.xxx.xxx:/home/mon_beau_serveur/ESSAISAUVEGARDE /mnt/sauvegardeOVH/01112011/
receiving incremental file list
cd+++++++++ ESSAISAUVEGARDE/

f+++++++++ ESSAISAUVEGARDE/essai

sent 324 bytes received 178 bytes 1004.00 bytes/sec
total size is 38 speedup is 0.08
loreleil@machine1:~$
[/code]
Sur dédié # rm -ri /home/mon_beau_serveur/ESSAISAUVEGARDE

Puis essai et restauration : local > distant

[code]loreleil@machine1:~$ rsync -av --dry-run --partial -e ssh /mnt/sauvegardeOVH/01112011/ mon_beau_serveur@xxx.xxx.xxx.xxx:/home/mon_beau_serveur/
sending incremental file list
./
ESSAISAUVEGARDE/
ESSAISAUVEGARDE/essai

sent 108 bytes received 22 bytes 86.67 bytes/sec
total size is 38 speedup is 0.29 (DRY RUN)
loreleil@machine1:~$
loreleil@machine1:~$
loreleil@machine1:~$
loreleil@machine1:~$ rsync -av --partial -e ssh /mnt/sauvegardeOVH/01112011/ mon_beau_serveur@xxx.xxx.xxx.xxx:/home/mon_beau_serveur/
sending incremental file list
./
ESSAISAUVEGARDE/
ESSAISAUVEGARDE/essai

sent 186 bytes received 38 bytes 448.00 bytes/sec
total size is 38 speedup is 0.17
loreleil@machine1:~$
[/code]

Succès !!! C’est tout bon … :smiley: