J'ai un utilisateur "backup" sur mon serveur qui a besoin d'avoir des autorisations de lecture partout. Faire chown 444 -R / backup
ne semble pas être la bonne chose à faire, que devrais-je faire?
Réponses
Trop de publicités?Sous Linux, si vous utilisez un système de fichiers compatible ACL (ext3, ReiserFS, ZFS devraient faire l'affaire je pense), alors vous pouvez définir les droits de lecture et de parcours de répertoire pour votre utilisateur d'opérateur de sauvegarde.
Disons que vous voulez sauvegarder /home
- Votre partition doit être montée avec l'option "acl" (vous pouvez le faire avec
mount -o remount,acl /home
) - Installez les outils ACL (setfacl et getfacl)
setfacl -R -m u:"Utilisateur de Sauvegarde":rx /home
Si vous voulez vous assurer que les nouveaux fichiers et répertoires auront également les droits appropriés, définissez l'ACL par défaut :
setfacl -R -m d:u:"Utilisateur de Sauvegarde":rx /home
Vous pouvez évidemment le faire de manière plus fine (par exemple si vous ne voulez pas sauvegarder gnupg ou les clés ssh, - qui devraient de toute façon être protégées par un mot de passe)
Effectuer une sauvegarde en tant que root n'est pas judicieux, à mon avis. Tout d'abord, si vous manquez involontairement d'espace disque, vous pouvez consommer jusqu'au dernier bloc disponible, et rendre votre système instable. Deuxièmement, si vous n'êtes pas complètement sûr du script ou de la commande que vous utilisez pour la sauvegarde, un utilisateur malveillant pourrait rendre votre sauvegarde récursive, ou faire des choses désagréables en tant que root.
Personnellement, j'utilise un mécanisme de synchronisation rsync pour synchroniser un serveur sur une réplique. J'utilise des droits de groupe simples sur la plupart des points de synchronisation, sauf pour le dossier home où j'utilise des ACL
Vous mélangez deux commandes:
-
chown qui est utilisée pour changer le propriétaire d'un fichier. Exemple:
chown root:adm /etc/passwd
-
chmod qui est utilisée pour changer les permissions d'un fichier. Exemple:
chmod g+r myfile
Peu importe quel est votre objectif, vous ne voulez vraiment pas que votre utilisateur de sauvegarde possède tous les fichiers et vous ne voulez certainement pas que chaque utilisateur de votre système ait le droit de lire tous les fichiers de votre système.
Quel est votre objectif?
La réponse simple est d'exécuter la sauvegarde en tant que root. En fait, sauf à faire des choses très pénibles et/ou dangereuses, c'est la seule solution à mon avis.
Si vous ne pouvez pas définir la sauvegarde comme propriétaire de tout, ni comme groupe de tout, la seule autre façon de lui donner accès est de donner à tout le monde l'accès. En d'autres termes, vous exécutez les sauvegardes en tant que root ou vous risquez de compromettre votre système.
Il est tout à fait normal de sauvegarder en tant que root.
Bart.
Une manière assez non intrusive de faire cela est d'ajouter votre utilisateur de sauvegarde à chaque groupe sur le système.
Cet utilisateur appartenant à chaque groupe hériterait des droits de ces groupes, ainsi tout fichier lisible par le groupe peut être sauvegardé. Cela inclurait le groupe root si vous souhaitez sauvegarder des fichiers appartenant à root.
Cela ne vous permettrait pas nécessairement de sauvegarder chaque fichier, mais vous permettrait de sauvegarder chaque fichier que les utilisateurs ne définissent pas comme privé. Les fichiers en X00 ne seront pas sauvegardés.
L'un des inconvénients de cette approche est que vous devez suivre le rythme des nouveaux groupes créés. De plus, il est nécessaire, si vous souhaitez sauvegarder les répertoires personnelles, de définir au moins des autorisations d'exécution sur /home (pour le groupe).
Comme quelqu'un d'autre l'a mentionné, cela pourrait perturber ssh avec les clés en fonction de votre implémentation.
- Réponses précédentes
- Plus de réponses