web-dev-qa-db-fra.com

Comment rendre un fichier ou un dossier non supprimable?

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.

5
Avinash Raj

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.

La réponse longue et ennuyeuse

À 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.

Comment faire?

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!
15
Braiam