Qu'est-ce que Linux pour SET FILE / ERASE_ON_DELETE?

16

Dans VMS, on peut dire au système de fichiers d'écrire des fichiers indésirables sur le contenu existant d'un fichier lorsqu'il est supprimé. Voici la commande DCL pour identifier le fichier pour ce type de traitement:

 $ SET FILE/ERASE_ON_DELETE SAMPLE.TXT

Cela permet à la stratégie d'être définie à un moment donné, puis les utilisateurs ultérieurs du fichier n'ont pas à gérer ce détail de sécurité. Une suppression standard qui retire le nom du fichier du répertoire et libère de l'espace pour un autre fichier à utiliser modifiera également le contenu existant pour empêcher le prochain utilisateur de le lire. La suppression normale:

$ DELETE SAMPLE.TXT.*

Qu'est-ce que Linux pour cela?

CW Holeman II
la source

Réponses:

19

Ceci n'est pris en charge que par certains systèmes de fichiers Linux:

chattr +s sample.txt

peut (ou non) faire ce que vous voulez.

De man chattr:

NAME
       chattr - change file attributes on a Linux second extended file system
...
       When a file with the ‘s’ attribute set is deleted, its blocks are
       zeroed and written back to the disk.  Note: please make sure to read
       the bugs and limitations section at the end of this document.
...
BUGS AND LIMITATIONS
       The  ‘c’, ’s’, and ‘u’ attributes are not honored by the ext2
       and ext3 filesystems as implemented in the current mainline Linux
       kernels. These attributes may be implemented in future versions of
       the ext2 and ext3 filesystems.

Je ne sais pas quelles versions spécifiques du noyau principal (le cas échéant) implémentent cela.

Anthon
la source
2
Wow, vous apprenez quelque chose de nouveau tous les jours. Xfs ou zfs implémentent-ils cet indicateur?
8

Notez qu'avec la technologie actuelle, vous n'aurez parfois aucun contrôle sur cela. Avec les disques SSD, chaque écriture peut être effectuée à un emplacement différent, en conservant les anciennes données ... et cela ne peut pas être annulé par le système d'exploitation, le système de fichiers ou quoi que ce soit dans le logiciel. Plus d'informations sur http://www.anandtech.com/printarticle.aspx?i=3531 .

liori
la source
7

L'équivalent le plus proche que vous trouverez généralement sur les systèmes Unix est le chiffrement. Un moyen simple de configurer un répertoire chiffré sous Linux (et la plupart des autres unités) est Encfs . Démarrage rapide:

mkdir .ciphertext encrypted
encfs .ciphertext encrypted
# work on encrypted/file
fusermount -u encrypted

Il existe plusieurs autres options pour le cryptage du système de fichiers. Voir Comment chiffrer et déchiffrer au mieux un répertoire via la ligne de commande ou le script? , La meilleure façon de faire un chiffrement complet du disque? et plusieurs autres discussions sur Super User , Server Fault et Ask Ubuntu .

Je ne sais pas FILE/ERASE_ON_DELETEcontre quelles menaces protège. Notez que sous unix, l'ancien contenu d'un fichier réécrit ou supprimé ne peut être vu que par l'administrateur système ou par une personne ayant un accès physique au lecteur: il n'y a pas de «mode de création de fichier rapide» qui remplirait un fichier avec des données aléatoires qui se trouvait dans la région de disque utilisée par le fichier.

Gilles 'SO- arrête d'être méchant'
la source
4

Je ne sais pas si c'est ce que vous cherchez:

dd if=/dev/urandom of=FILE

Il écrit des octets aléatoires dans FILE.

Alan Haggai Alavi
la source
Ce n'est pas tout à fait la même chose, mais c'est probablement aussi proche que vous allez le faire dans Linux standard.
Oh je vois. Merci de m'avoir prévenu, Paul.
Alan Haggai Alavi