52 votes

Empêcher la possibilité d'écrire des données dans un répertoire de point de montage non monté

J'ai un serveur Ubuntu où je monte automatiquement un disque dur externe à chaque démarrage.

Pour ce faire, j'ai créé un dossier vide sur la partition racine, et le disque est monté "à l'intérieur" de ce dossier.

Cependant, que se passe-t-il si je fais une sauvegarde vers ce chemin lorsque le disque n'est pas correctement monté? La sauvegarde remplirait alors ma partition racine!

Je peux m'assurer que le disque est monté à chaque fois en effectuant :

sudo mount -a

... avant chaque sauvegarde.

Cependant, quelles sont les meilleures pratiques pour garantir que les données ne sont jamais écrites dans le dossier de montage vide (sauf lorsque le disque dur externe est vraiment monté)?

Cette situation peut-elle être résolue sans script ? Par exemple, avec des permissions ? Quelles sont les meilleures pratiques?

82voto

ewwhite Points 193555

Je vais encore plus loin et définis toujours les attributs de mes répertoires de point de montage en mode immuable en utilisant chattr.

Cela se fait avec chattr +i /pointdemontage (avec le point de montage démonté).

Cela générerait une erreur en cas d'activité d'écriture nouvelle et protège également le point de montage dans d'autres situations.

Mais je suppose que vous pourriez également utiliser la commande mountpoint ;)

3voto

fukawi2 Points 5257

Pour compléter le commentaire sur l'utilisation de mountpoint, voici à peu près ce que j'insère dans les scripts lorsque j'ai besoin de vérifier ce genre de choses :

DEST='/mnt/backup'
if ! mountpoint -q "$DEST" ; then
    echo "La destination n'est pas montée; tentative de montage en cours"
    mount $DEST
    if ! mountpoint -q "$DEST" ; then
        echo "Impossible de monter $DEST; Abandon"
        exit 1
    fi
    echo "$DEST monté; Sauvegarde en cours"
fi

Cela suppose que $DEST existe dans /etc/fstab; peu importe s'il s'agit d'un point de montage auto ou noauto.

Conformément à la page de manuel de mount :

Si seul un répertoire ou un périphérique est donné, par exemple :

mount /dir

alors mount recherche un point de montage et sinon un périphérique dans le fichier /etc/fstab. Il est possible d'utiliser les options --target ou --source pour éviter une interprétation ambiguë de l'argument donné. Par exemple

mount --target /point_de_montage

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X