11 votes

Existe-t-il un outil Linux permettant de modifier les attributs des fichiers DOS/Windows ?

J'utilise souvent un LiveCD Linux (ou Puppy sur une clé USB) pour désinfecter les machines Windows infestées de divers logiciels malveillants. Cependant, une fois que le logiciel malveillant a disparu, il faut encore s'occuper des modifications qu'il a pu faire, et malheureusement, Linux n'est pas si génial pour cela.

Les derniers programmes FakeAV essaient de faire peur à l'utilisateur en faisant tout disparaître - ils définissent l'option "Ne pas afficher les fichiers cachés ou système" (et la protègent avec une stratégie de groupe), puis ils définissent les attributs cachés/système sur chaque fichier dans Documents and Settings. \UserName.

Ce que j'aimerais - mais que je n'ai pas trouvé - c'est un outil Linux pour réinitialiser ces attributs. Je suppose que si j'exécutais Samba, que je partageais le volume NTFS et que je configurais mes options correctement, je pourrais probablement le faire à partir d'un client DOS ou Windows... mais c'est une vraie galère, et de toute façon je ne suis pas très sûr du partage d'un volume NTFS via Samba. Y a-t-il un moyen de le faire directement ?

編集する。
OK - on dirait que setfattr(1) est ce dont j'ai besoin ; cependant, il me semble que je devrais définir directement une valeur bitmap, plutôt que d'appliquer un masque. Est-ce que j'ai bien compris ? Et si c'est le cas, que pourrais-je faire (le cas échéant) pour mettre en place un masque ?
En d'autres termes, certains fichiers peuvent légitimement être en lecture seule, d'autres peuvent avoir le bit Archive activé. Comment puis-je seulement débloquer Hidden ou System, sans toucher aux autres - comme attrib -s -h à la ligne de commande de Windows ? Si la seule façon de le faire est de getfattr d'abord, et ensuite décider quels paramètres passer à setfattr ... eh bien, j'espère que non.

0 votes

C'est peut-être mon état d'esprit centré sur la sécurité... mais les mots "désinfecter" et "infesté" me donnent envie de dire immédiatement "effacer et réinstaller/réimager".

0 votes

9voto

Andrew Lambert Points 7506

NTFS-3G comprend les éléments suivants setfattr commandement :

setfattr -h -v 0x00000000 -n system.ntfs_attrib_be target-file

devrait effacer tous les attributs (le dernier argument fichier cible devrait être modifié, bien sûr). Voir aquí pour obtenir la liste des attributs disponibles et savoir comment les définir.

0 votes

Le lien ne fonctionne plus

5voto

Wild Penguin Points 51

setfattr fonctionne probablement pour les systèmes de fichiers NTFS, mais au cas où quelqu'un aurait besoin de faire la même chose pour les systèmes de fichiers FAT (vfat/fat16/fat32), voir mtools paquet. Cela fera l'affaire !

4voto

Aramaicus Points 11

Si vous vous sentez (comme moi) setfattr est trop bas niveau et source d'erreurs et que vous voulez quelque chose comme attrib dans Windows ou chmod sous Linux, alors fatattr semble être le bon outil.

Son utilisation est simple, par exemple :

fatattr +R FILE  # set FILE read-only
fatattr -H FILE  # set FILE not hidden

Pour obtenir fatattr sur Ubuntu il suffit d'exécuter (avec Dépôt de l'univers activé ):

sudo apt install fatattr

3voto

Ferruccio Points 51508

Si vous montez le système de fichiers avec une version suffisamment récente de NTFS-3G, vous pouvez utiliser getfattr y setfattr pour accéder à ces attributs .

3voto

Explorer09 Points 356

Essayez mon Shell Shell, qui est une réimplémentation (en grande partie) de attrib dans Windows.

Cela utilise system.ntfs_attrib_be de NTFS-3G, vous devez donc gatfattr y setfattr de votre distribution (dans Debian/Ubuntu : sudo apt-get install attr ).

Mais après cela, il suffit de l'utiliser sans se souvenir des masques de bits, par ex.

./ntfs_attr.sh -h -s some_file_in_ntfs_volume

https://gist.github.com/Explorer09/ac4bf6838c271a9968b3 (Migration vers GitLab ; l'ancien lien pourrait ne plus fonctionner). https://gitlab.com/snippets/1720133

Notes :

/L dans attrib dans Windows est implémentée ici, voir l'aide dans script pour les détails.

/S y /S /D ne sont pas (intentionnellement) mises en œuvre. Essayez find(1) avec ce script à la place.

0 votes

Je ne suis pas en mesure de le tester pour le moment, mais cela ressemble EXACTEMENT à ce que j'avais à l'esprit. Je vote maintenant, j'accepterai dès que je l'aurai testé. Je vous remercie ! (

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