Je veux rendre un fichier ou un dossier non effaçable, même le superutilisateur ne peut pas supprimer ce fichier .Chattr
la commande rend un fichier non effaçable que si les fichiers étaient dans des systèmes de fichiers Linux (ext2,ext4
). Mais je veux créer un fichier non supprimable qui était présent dans le système de fichiers ntfs
.
Il n'y a pas une telle chose que "root
" ne puisse pas supprimer. C'est comme dire à Dieu qu'il ne peut pas faire ou défaire quelque chose. root
peut mettre votre machine à l'envers et faire 1 + 1 = 3 si elle le souhaite et que vous ne pouvez rien faire pour l'empêcher. Donc, vous ne pouvez pas empêcher root de supprimer le fichier qu’il aime mais ne le peut tout simplement pas. Ni NTFS, ni ext2/3/4, ni HSF +, ni FAT16/32/64, ni aucun autre système de fichiers. gouverné par l'OS.
À moins que personne d'autre n'ait root
accès à votre système, ceci est impossible. Cependant, il existe des moyens permettant aux utilisateurs de supprimer le fichier, par exemple chattr
:
chattr modifie les attributs de fichier sur un système de fichiers Linux.
[...]
Un fichier avec l'attribut
i
ne peut pas être modifié: il ne peut pas être supprimé ou renommé, aucun lien ne peut être créé avec ce fichier et aucune donnée ne peut être écrite dans ce fichier. Seul le superutilisateur ou un processus possédant la capacitéCAP_LINUX_IMMUTABLE
peut définir ou effacer cet attribut.
Ainsi, si personne n'a _ l'accès ou la capacité de root
à démarrer à l'aide d'un autre système d'exploitation, le fichier ne peut pas être supprimé, sinon tout utilisateur peut (et va) supprimer votre fichier. Idem si le système de fichiers est techniques formatées et/ou micrologicielles pour supprimer les données des disques.
Créez le fichier:
$ touch deletemeifyoucan:D
Protege le:
$ Sudo chattr +i deletemeifyoucan\:D
[Sudo] password for braiam:
Essayez de l'enlever
$ rm deletemeifyoucan\:D
rm: remove write-protected regular empty file ‘deletemeifyoucan:D’? y
rm: cannot remove ‘deletemeifyoucan:D’: Operation not permitted
Maintenant, essayez avec root:
$ Sudo rm deletemeifyoucan\:D
rm: cannot remove ‘deletemeifyoucan:D’: Operation not permitted
Déprotégez-le:
$ Sudo chattr -i deletemeifyoucan\:D
Est parti:
$ rm deletemeifyoucan\:D
$ #POOF!