J'ai un fichier très important utilisé par une application de mon lieu de travail. Je dois m'assurer qu'il ne soit pas supprimé, comment puis-je le faire?
J'ai un fichier très important utilisé par une application de mon lieu de travail. Je dois m'assurer qu'il ne soit pas supprimé, comment puis-je le faire?
Réponses:
Oui, vous pouvez modifier les attributs du fichier en lecture seule.
La commande est:
chattr +i filename
Et pour le désactiver:
chattr -i filename
De man chattr
:
Un fichier avec l'
i
attribut ne peut pas être modifié: il ne peut être ni supprimé ni renommé, aucun lien ne peut être créé avec ce fichier et aucune donnée ne peut être écrite dans le fichier. Seul le superutilisateur ou un processus possédant cetteCAP_LINUX_IMMUTABLE
capacité peut définir ou effacer cet attribut.
chflags schg
Gravez-le sur un CD. Placez le CD dans un lecteur de CD-ROM et accédez-y à partir de là.
Exemple:
# dd if=/dev/zero of=readonly.img bs=1024 count=1024
# mkfs.ext2 readonly.img
# mkdir readonlyfolder
# mount readonly.img readonlyfolder/
# echo "can't delete this" > readonlyfolder/permanent.txt
# umount readonlyfolder
# mount -o ro readonly.img readonlyfolder
# cat readonlyfolder/permanent.txt
can't delete this
# rm readonlyfolder/permanent.txt
rm: cannot remove `readonlyfolder/permanent.txt': Read-only file system
mount -o remount,rw readonlyfolder/ && rm readonlyfolder/permanent.txt
squashfs
ou cramfs
qui sont compressés et en lecture seule. Il faut un outil spécial pour construire le système de fichiers.
Linux a ce que l’on appelle l’ option bind-mount , une fonctionnalité plutôt puissante et utile à connaître :
% cd $TMP && mkdir usebindmountluke && cd usebindmountluke
% echo usebindmountluke > preciousfile
% sudo mount -B preciousfile preciousfile
% sudo mount -oremount,ro preciousfile
% echo sowhat > preciousfile
zsh: read-only file system: preciousfile
% rm preciousfile
rm: cannot remove ‘preciousfile’: Read-only file system
- ce qui est fait ici est un fichier de montage lié à lui-même (oui, vous pouvez le faire sous Linux), puis il est remonté en mode R / O. Bien sûr, cela peut aussi être fait dans le répertoire.
Vous devez également créer plusieurs liens physiques vers le fichier. Ceux-ci doivent se trouver dans divers endroits inaccessibles aux utilisateurs réguliers.
De cette manière, même s'ils parviennent à outrepasser votre protection chattr, les données restent et vous pouvez facilement les restaurer là où votre application les recherche.
D'autres ont répondu à votre question comme vous l'avez posée. Comme @Sven l'a mentionné dans un commentaire, la solution générale à la question "Comment puis-je m'assurer de ne jamais perdre un fichier?" est de créer une sauvegarde du fichier. Faites une copie du fichier et stockez-le à plusieurs endroits. En outre, si le fichier est extrêmement important et que votre société dispose d'une politique de sauvegarde des données importantes avec un service de sauvegarde, vous pouvez éventuellement inclure ce fichier dans le service.
Sous Linux l' immuable drapeau est pris en charge uniquement sur certains types de système de fichiers ( la plupart de ceux indigènes comme ext4
, xfs
, btrfs
...)
Sur les systèmes de fichiers où il n'est pas pris en charge, une autre option consiste à monter le fichier sur lui-même en mode lecture seule. Cela doit être fait en deux étapes:
mount --bind file file
mount -o remount,bind,ro file
Cela doit être fait à chaque démarrage, par exemple via /etc/fstab
.
umount
le monde le fichier pour obtenir à nouveau des autorisations d'écriture
Dans un commentaire à la réponse de Kevin , Jerry mentionne:
Bien sûr, le fichier est sauvegardé régulièrement, je voulais simplement une autre couche de protection contre les utilisateurs qui travaillent parfois sur la boîte avec des autorisations d’utilisateur root. -
Je vais supposer que vous ne pouvez pas changer cette pratique, car c'est une très, très mauvaise idée.
Toutes les suggestions relatives à l'utilisation d'un périphérique en lecture seule ont le même problème: cela en fait un PITA pour vous permettre d'apporter des modifications légitimes lorsque vous en avez besoin. Dans le cas d'un lecteur verrouillable, tel qu'une carte SD, vous vous retrouvez soudainement vulnérable lorsque vous le déverrouillez pour effectuer vos modifications.
Ce que je recommanderais plutôt, c'est de configurer une autre machine en tant que serveur NFS et de partager le répertoire avec les fichiers importants sur la ou les machines sur lesquelles les utilisateurs ont la racine. Partagez le montage en lecture seule, de sorte que les machines avec des utilisateurs auxquels vous ne faites pas confiance ne puissent apporter aucune modification. Lorsque vous devez légitimement apporter des modifications, vous pouvez vous connecter au serveur NFS et y apporter nos modifications.
Nous l'utilisons pour nos serveurs Web, de sorte qu'un exploit réussi contre le serveur Web ne sera pas en mesure d'insérer ou de modifier les fichiers que le serveur servirait ensuite ou de modifier la configuration.
Notez que cela peut être évité de la même manière que tous ceux liés aux points de montage:
Pourquoi ne pas créer une image ISO 9660, qui est en lecture seule par conception?
Montez l'image ISO et elle ressemblera à un CD-ROM, mais avec les performances d'un disque dur et les fichiers de l'image montée seront tout aussi protégés contre la suppression que les fichiers d'un CD-ROM physique.
L'idée de graver le fichier sensible sur un CD et de l'exécuter à partir d'un CD-ROM est intéressante, en supposant que la définition du bit immuable sur le fichier ne soit pas jugée suffisante.
Son utilisation sur un CD physique présente des problèmes potentiels, notamment en termes de performances (les lecteurs de CD-ROM sont beaucoup plus lents que les disques durs ou les disques SSD). Il est probable que le CD-ROM soit retiré par un individu bien intentionné et remplacé par un autre disque auquel il doit avoir accès. Il est probable qu’une partie malveillante se contente de sortir le disque et de le lancer dans un four à micro-ondes (ou dans la corbeille), supprimant ainsi votre fichier. Il y a l'inconvénient de devoir disposer d'un lecteur de CD-ROM dédié au matériel uniquement pour ce fichier, et d'autres facteurs.
Mais le PO a clairement indiqué que son objectif premier est de protéger contre la suppression accidentelle, et non contre les actes malveillants, et que le ou les fichiers en question sont sauvegardés et récupérables en cas d'accident, mais il est hautement souhaitable que le fichier être supprimé accidentellement.
Il semble que l’exécution du fichier à partir d’une image ISO montée satisferait à cette exigence.
shred
à ce point. Mais à moins que vous ne refusiez l'accès physique à la machine, il semble toujours plus facile de simplement extraire un CD physique du lecteur et de le jeter dans le benne à ordures que de démonter et d'écraser le fichier ISO, bien que ce soit facile. Et le PO a déclaré que le fichier important est sauvegardé régulièrement. Il ne s'agit donc que d'une mesure supplémentaire contre les dommages accidentels, et non contre les méfaits malveillants.
chattr +i
peut vous aider, mais rendra également le fichier en lecture seule (et peut être écrasé avecchattr -i
), vous pouvez également essayer de le protéger avec SELInux, etc.