Je souhaite qu'un utilisateur ait accès à tous les fichiers et dossiers du système. C'est dans le but d'utiliser RSYNC sur une machine locale pour sauvegarder une machine distante.
Pour le moment, nous utilisons l'utilisateur backups
et bien que nous ayons ajouté cet utilisateur aux groupes sudo
et admin
rsync renvoie toujours des messages comme:
rsync: opendir "/ location / to / folder" a échoué: autorisation refusée (13)
rsync: send_files n'a pas réussi à ouvrir "/ location / to / file": autorisation refusée (13)
Toute idée de la façon dont nous donnons à l'utilisateur la backups
permission d'accéder à tout (à moins d'ajouter l'utilisateur à tous les groupes - le serveur distant que nous essayons de sauvegarder est un serveur d'hébergement dédié où chaque compte a son propre utilisateur sur le système).
Merci pour toute aide.
la source
/proc
,/dev
etc. , des erreurs sont à prévoir.backups
àsudo
etadmin
ne pas changer quoi que ce soit./home/a/c/account/users/mail:username
qui ont des autorisations similairesdrwx------
et qui leur appartiennentmail:4096
. Je suppose que parce que l'utilisateurbackups
est dans le groupesudo
ouadmin
qu'il n'y a pas accès car il n'y a pas d'autorisations d'accès pour les groupes? Je ne sais pas, mais son erreur sur les dossiers / fichiers comme ça.rsync
commande avec sudo.Réponses:
Le simple fait d'ajouter l'utilisateur
backups
au groupe d'utilisateurssudo
ne donne pas automatiquement au compte l'accès à tous les fichiers du système. Il donne à l'utilisateur l'autorisation d'exécuter lasudo
commande.Étant donné que vous utilisez l'authentification par clé publique (probablement sans phrase secrète), j'aborderais cela avec la sécurité et la facilité de mise en œuvre à l'esprit. L'utilisation
ssh
vous permet de restreindre l'utilisateur à exécuter uniquement des commandes très spécifiques. Dans ce cas, vous pouvez autoriser l'utilisateurbackups
à exécuterrsync
avec des autorisations de superutilisateur.Vous avez déjà effectué l'échange de clés et l'authentification vérifiée a réussi. Dans le
authorized_keys
fichier sur l'hôte distant à partir duquel vous sauvegardez le/home
répertoire, vous pouvez ajouter unecommand=
directive à la clé utilisée par l'utilisateurbackups
. Cette directive autorise uniquement l' exécution de cette commande lorsque cette clé est utilisée pour l'authentification. Ainsi, le premier champ de la clé ressemblerait à ceci:Vous pouvez aller encore plus loin et ajouter plus d'options à la clé, telles que
from=myhost,no-pty,no-X11-forwarding
.Cela devrait vous donner une sécurité décente et ne pas vous obliger à modifier les autorisations du système de fichiers sous-jacent. Vous devrez probablement jouer avec la commande que vous placez dans le
authorized_keys
fichier jusqu'à ce qu'elle fonctionne comme prévu; cela peut prendre un peu pour envelopper votre cerveau autour de lui. La commande spécifiée dans leauthorized_keys
remplacera essentiellement lesrsync
options que vous passerez de l'hôte qui se connecte.Beaucoup de bonnes informations
man sshd
. Vous souhaitez lire spécifiquement la section AUTHORIZED_KEYS FORMAT.la source
rsync -e ssh -az [email protected]:/home /location/of/local/folder
pour lui demander de s'exécuter en tant que superutilisateur sur la machine distante? Ou le fera-t-il automatiquement? Merci pour votre temps et votre aide. :)Une option consiste à exécuter un serveur rsync sur le système distant.
Fondamentalement, créez un
rsync.conf
avecuid=root
puis utilisezrsync -az rsync://domain.com
.Voir http://pastebin.com/5hQx1mRV pour un exemple écrit par quelqu'un d'autre et Configuration du démon rsync pour quelques notions de base sur l'activation d'un serveur dans Ubuntu.
Notez que vous devez considérer la sécurité de ceci. Une meilleure approche consiste probablement à pousser le système distant vers votre système local.
la source
/backup/lc
dossier sur le serveur distant? Dois-je changer lepath
bit/home
pour que cela fonctionne?Vous pouvez peut-être utiliser ACL si le système de fichiers sous-jacent le prend en charge.
Vous devez ajouter la sauvegarde de groupe dans l'ACL de chaque fichier et répertoire. Mais pour être ajouté automatiquement pour le fichier et le répertoire nouvellement créés, vous devez d'abord définir l'ACL par défaut sur tous les répertoires existants. Donc sur le serveur distant:
Ensuite, vous devez avoir l'autorisation rx pour tous les répertoires existants et lire les fichiers. Vous pouvez le faire avec 2 commandes (sans le -d cette fois)
Cela vous donnera une autorisation supplémentaire pour lire les fichiers dans la sauvegarde de groupe sans changer l'utilisateur et le groupe existants qui sont propriétaires de chaque fichier.
Remarque: pour accélérer la recherche | Commande xargs vous pouvez ajouter l'option suivante à la commande xargs:
-P n
avec n le nombre de processus parallèles. Vous pouvez le régler sur le nombre de CPU que vous avez sur votre machine + 1.la source
sudo setfacl -Rm d:group:backup:r-X,group:backup:r-X /home
:) beaucoup plus simple!