Script de sauvegarde toujours en admin/root

Bonjour à Toutes et Tous :slightly_smiling:

Comme sur cette discussion,
donner-droit-d-admin-sur-script-t44779.html?hilit=lanceur
les différentes tentatives n’ont pas abouti, voici le mien, qui fonctionne très bien… sauf qu’il faut que je me connecte en console admin/root et que je le lance, ainsi, tout se passe correctement, autrement, j’ai des refus sur des dossiers par “access denied” :

[code]#!/bin/bash

#Exécution du script en admin/root

Ce script permet de faire une sauvegarde incrémentale manuelle avec “rsync”

Il peut être lancé à partir d’un bouton personnalisé dans un tableau de bord.

Variables de couleurs (pour donner un peu de gaieté dans ce monde de brutes…)

VERT="\033[1;32m"
STNDT="\033[0;39m"
ROUGE="\033[1;31m"
ROSE="\033[1;35m"
BLEU="\033[1;34m"
BLANC="\033[0;02m"
BLANCLAIR="\033[1;08m"
JAUNE="\033[1;33m"
CYAN="\033[1;36m"

Date=$(date +%d-%m-%Y)
Heure=$(date +%T)

	echo -e $BLEU "Sûr de vouloir exécuter la sauvegarde ? o/n"
	read ANSWER

if [ $ANSWER == o ] ;
then
echo -e $JAUNE "----\nLancement sauvegarde à : $Heure le $Date"
echo -e $STNDT “-----------\nSynchronisation en cours…\n ------------”

pour donner un nom “raccourci” (incluant le chemin) au fichier backuperror.log :

backup=/home/bernard/bin/Sauvegardes/backuperror.log

#sauvegarde liste des paquets, pour réinstallation
aptitude search ‘~i !~M’ -F ‘%p’ > mes_paquets

à noter l’usage des “>” :

Un seul “>” renvoie le contenu du terminal dans le fichier indiqué

en écrasant tout ce que contient déjà ce fichier.

“>>” renvoie le contenu du terminal sans écraser ce que contient déjà le fichier.

Le chiffre “2” suivi d’un seul “>” renvoie seulement les messages d’erreurs

générés par le processus dans le fichier indiqué en écrasant le contenu de ce fichier.

“2>>” renvoie les erreurs sans écraser le contenu du fichier.

###DD2To
#test avec ou sans -n
sudo rsync -av --partial --del --stats --filter “- /bin/” --filter “- /dev/” --filter “- /home/” --filter “- /lost+found/” --filter “- /media/” --filter “- /mnt/” --filter “- /proc/” --filter “- /sys/” --filter “- /tmp/” --filter “- /var/” / /media/DD2To/essai_1_03102013/ 2>> $backup

###DD1To
#test avec ou sans -n
sudo rsync -av --partial --del --stats --filter “- /bin/” --filter “- /dev/” --filter “- /home/” --filter “- /lost+found/” --filter “- /media/” --filter “- /mnt/” --filter “- /proc/” --filter “- /sys/” --filter “- /tmp/” --filter “- /var/” / /media/DD1To/essai_1_03102013/ 2>> $backup

Vérification des liens = faite

Insertion de la date à la fin de la liste d’erreur si le fichier backuperror

n’est pas vide (c’est à dire s’il y a des erreurs), ce que vérifie l’option “-s” :

if [ -s $backup ]; then
{
date >> $backup
}
fi

	# Mise à jour de l'heure
	Heure=$(date +%T)

echo -e $ROUGE " Sauvegarde terminée à  : $Heure le $Date\n"

else
echo -e $BLEU "Procédure interrompue par l’utilisateur."
fi

read -p “A la prochaine… Pour fermer le terminal : Ctrl + C”

---- fin du script ----[/code]

Mon souhait est :

  • que ce script fonctionne sans que je sois obligé de passer par une console admin/root !

Vous avez des suggestions ?

Merci pour vos retours :slightly_smiling:

Salut,

[quote]Mon souhait est :

  • que ce script fonctionne sans que je sois obligé de passer par une console admin/root ![/quote]

Ce qui ferait que n’importe quel pleu-pleu pourrait accéder à toutes les données de tout le monde :slightly_smiling:

:slightly_smiling:

[quote=“ggoodluck47”]Salut,

[quote]Mon souhait est :

  • que ce script fonctionne sans que je sois obligé de passer par une console admin/root ![/quote]

Ce qui ferait que n’importe quel pleu-pleu pourrait accéder à toutes les données de tout le monde :slightly_smiling:[/quote]

il n’y a qu’un seul pleu-pleu… moi et tout le monde, c’est encore moi… :wink:

Salut !

Comme je l’écrivais ici, il est possible d’utiliser un utilisateur spécifique (« backup » dans le message précédent) auquel des droits sudo ont été attribués, mais uniquement pour la commande rsync.

Par exemple, dans la configuration de sudo :

Attention, aucun mot de passe n’est ici demandé car l’authentification se fait par clefs RSA (ce qui est au choix de l’administrateur, donc toi ; et ce n’est qu’un exemple).

Cela permet d’opérer certaines tâches d’administration automatiquement sans que tous les droits super-utilisateur ne soient donnés au processus.

:slightly_smiling:

[quote=“Pyc”]Salut !

Comme je l’écrivais ici, il est possible d’utiliser un utilisateur spécifique (« backup » dans le message précédent) auquel des droits sudo ont été attribués, mais uniquement pour la commande rsync.

Par exemple, dans la configuration de sudo :

Attention, aucun mot de passe n’est ici demandé car l’authentification se fait par clefs RSA (ce qui est au choix de l’administrateur, donc toi ; et ce n’est qu’un exemple).

Cela permet d’opérer certaines tâches d’administration automatiquement sans que tous les droits super-utilisateur ne soient donnés au processus.[/quote]

Je comprends ce que tu indiques, mais ne vois pas de quelle manière cet utilisateur spécifique lance la sauvegarde… !

A moins, de sortir de ma session, puis après avoir créé un utilisateur “spécifique”, j’ouvrirai sa session, puis lancerai la sauvegarde… ?

Il existe certainement de nombreuses méthodes. Tu peux par exemple ajouter un « su - backup » dans ton script. Mais il faudra à ce moment-là intégrer la gestion du mot de passe (soit dans le script, soit pas de mot de passe…).

Autre méthode. Puisqu’il s’agit d’un service de sauvegarde, il pourrait s’exécuter automatiquement à intervalle régulier. Dans ce cas, en créant une tâche Cron sous l’utilisateur backup, le script s’exécutera automatiquement sous cet utilisateur aux heures indiquées.

Il doit y avoir bien d’autres solutions…

[quote=“Pyc”]Il existe certainement de nombreuses méthodes. Tu peux par exemple ajouter un « su - backup » dans ton script. Mais il faudra à ce moment-là intégrer la gestion du mot de passe (soit dans le script, soit pas de mot de passe…).

Autre méthode. Puisqu’il s’agit d’un service de sauvegarde, il pourrait s’exécuter automatiquement à intervalle régulier. Dans ce cas, en créant une tâche Cron sous l’utilisateur backup, le script s’exécutera automatiquement sous cet utilisateur aux heures indiquées.

Il doit y avoir bien d’autres solutions…[/quote]

Restons simples:wink:

le su - backup tu le places où, idéalement dans le script ?

je fais des sauvegardes à chaque intervention importante, soit quelques fois, plusieurs fois par jour !

Je ne sais pas s’il y a une place idéale. Juste avant les rsync, par exemple (et ne pas oublier de mettre un exit juste après).

:slightly_smiling:

Je ne sais pas s’il y a une place idéale. Juste avant les rsync, par exemple (et ne pas oublier de mettre un exit juste après).[/quote]

sur le script qui est en premier commentaire, je placerai “su - backup” avant la première commande rsync, et placerai “exit” après quelle ligne ?

:slightly_smiling:

J’ai placé l’utilisateur des sauvegardes, avant la question d’exécution de la sauvegarde, et la sortie, juste après la sortie “Ctr + C”, autrement, placé une ligne avant, la boite de dialogue “sauvegarde” se ferme… ce qui est voulu, mais j’aime surveiller ce qui se passe… :wink:

et aucune erreur de détectée par mon fichier backup !

Sauvegarde effectuée via le lanceur… donc impec :slightly_smiling:

Je peux dire que la discussion est résolue :slightly_smiling:

Merci à Tous !

une précision… :wink:

Dans le script, lorsque je place sudo avant la ligne de commande rsync, le mot de passe m’est demandé, lorsque je enlève “sudo” et place "su - backup"sur la ligne précédente, aucun mot de passe m’est demandé, par contre il y a des dossiers…

rsync: opendir "/.pulse" failed: Permission denied (13) rsync: opendir "/etc/cups/ssl" failed: Permission denied (13) rsync: mkstemp "/media/DD2To/SovRacineDebian/etc/.adjtime.vGS9FR" failed: Permission denied (13) rsync: opendir "/etc/polkit-1/localauthority" failed: Permission denied (13) rsync: opendir "/etc/ssl/private" failed: Permission denied (13) rsync: opendir "/root" failed: Permission denied (13) rsync: opendir "/run/cups/certs" failed: Permission denied (13) rsync: opendir "/run/exim4" failed: Permission denied (13) rsync: opendir "/run/gdm3" failed: Permission denied (13) rsync: opendir "/run/udisks" failed: Permission denied (13) rsync: failed to modify permissions on "/media/DD2To/SovRacineDebian/run/cups/certs": Operation not permitted (1) rsync: mkstemp "/media/DD2To/SovRacineDebian/run/.utmp.rsRGe9" failed: Permission denied (13) rsync: failed to set times on "/media/DD2To/SovRacineDebian/usr/local/bin": Operation not permitted (1) rsync: mkstemp "/media/DD2To/SovRacineDebian/usr/local/bin/.Sauvegarde_Debian.sh.j2qdlM" failed: Permission denied (13) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9] rsync: opendir "/.pulse" failed: Permission denied (13) rsync: opendir "/etc/cups/ssl" failed: Permission denied (13) rsync: mkstemp "/media/DD1To/SovRacineDebian/etc/.adjtime.vkWgn3" failed: Permission denied (13) rsync: opendir "/etc/polkit-1/localauthority" failed: Permission denied (13) rsync: opendir "/etc/ssl/private" failed: Permission denied (13) rsync: opendir "/root" failed: Permission denied (13) rsync: opendir "/run/cups/certs" failed: Permission denied (13) rsync: opendir "/run/exim4" failed: Permission denied (13) rsync: opendir "/run/gdm3" failed: Permission denied (13) rsync: opendir "/run/udisks" failed: Permission denied (13) rsync: failed to modify permissions on "/media/DD1To/SovRacineDebian/run/cups/certs": Operation not permitted (1) rsync: mkstemp "/media/DD1To/SovRacineDebian/run/.utmp.PYdUSg" failed: Permission denied (13) rsync: failed to set times on "/media/DD1To/SovRacineDebian/usr/local/bin": Operation not permitted (1) rsync: mkstemp "/media/DD1To/SovRacineDebian/usr/local/bin/.Sauvegarde_Debian.sh.dgFg6c" failed: Permission denied (13) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9] mercredi 4 septembre 2013, 19:00:18 (UTC+0200)

Normal que malgré le su - backup, sudo me demande un mot de passe ?

Dans le script de sauvegarde que j’utilise depuis longtemps, la ligne principale:
sudo rsync … fonctionne avec un sudoer comme celui-ci:

[code]User_Alias ADMINS = joseph

ADMINS ALL= NOPASSWD: /bin/mount, /bin/umount, /usr/bin/rsync[/code]

:slightly_smiling:

[quote=“josephtux”]Dans le script de sauvegarde que j’utilise depuis longtemps, la ligne principale:
sudo rsync … fonctionne avec un sudoer comme celui-ci:

[code]User_Alias ADMINS = joseph

ADMINS ALL= NOPASSWD: /bin/mount, /bin/umount, /usr/bin/rsync[/code][/quote]

Merci pour ton retour Joseph:)

Lorsque je lance la sauvegarde, il m’indique bien que su - backup n’a pas besoin de mot de passe…

C’est çà qui m’interroge…

Mais, là, je “pinaille” un peu…