Comment puis-je supprimer des fichiers Time Machine à l'aide de la ligne de commande

68

Je souhaite supprimer certains fichiers / répertoires de ma partition Time Machine à l'aide de rm , mais je suis incapable de le faire. Je suis presque sûr que le problème est lié à une sorte d'attributs étendus de contrôle d'accès sur les fichiers de la sauvegarde, mais je ne sais pas comment les remplacer / les désactiver pour que rm fonctionne. Un exemple d'erreur que je reçois est:

% sudo rm -rf Backups.backupdb/MacBook/Latest/MacBook/somedir
rm: Backups.backupdb/MacBook/Latest/MacBook/somedir: Directory not empty
rm: Backups.backupdb/MacBook/Latest/MacBook/somedir/somefile: Operation not permitted

Il existe un certain nombre de raisons pour lesquelles je ne souhaite pas utiliser l'interface graphique de Time Machine ni le Finder à cet effet. Si possible, j'aimerais pouvoir maintenir la protection étendue pour tous les autres fichiers (j'aimerais ne pas les désactiver globalement, à moins que je ne puisse le réactiver une fois mon travail terminé).

Tim
la source
Je me suis rapproché. Tout d'abord, je devais désactiver les ACL sur mon disque Time Machine. Auparavant, fsaclctl était utilisé pour cela, mais Snow Leopard ne l’incluait pas. J'ai récupéré une copie du binaire d'une ancienne version d'OSX et l'ai exécutée:% sudo fsaclctl -p / Volumes / tmvol -d J'ai ensuite essayé d'utiliser "sudo rm -rf" pour supprimer un répertoire, mais je rencontrais toujours des problèmes certains fichiers (bien que d'autres soient bien partis). Plus précisément, il a échoué sur les liens symboliques. Très étrange. Sur le plan positif, les liens ne prennent presque pas de place. Sur le plan négatif, j'ai toujours les annuaires qui restent.
Tim
Il semble que la réponse acceptée soit assez dangereuse lors de la suppression d'instantanés, ou de dossiers dans des instantanés, comme votre rm -r Backups.backupdb/MacBook/Latest/MacBook/somedir; si vous êtes d'accord, acceptez la réponse d'Arne?
Arjan

Réponses:

115

Pour contourner les erreurs "opération non autorisée", utilisez le programme "contournement" de Time Machine Safety Net :

sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass rm -rfv /Volumes/[disk]/Backups.backupdb/[path]

Dans 10.8 Mountain Lion, contournement déplacé dans 'Helpers':

/System/Library/Extensions/TMSafetyNet.kext/Helpers/bypass

Dans 10h10 Yosemite, le contournement s'est déplacé ici:

/System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass

Faites attention lorsque vous l' utilisez pour supprimer des instantanés spécifiques: étant donné que Time Machine utilise des liens physiques, l'utilisation rm -rde dossiers peut également affecter les instantanés anciens et plus récents du même ordinateur . (Voir les autres réponses concernant la tmutil deletesuppression en toute sécurité d'un instantané spécifique.) Utiliser rmpour supprimer tous les instantanés d'un seul ordinateur est cependant correct. Il en va de même rmpour supprimer un fichier spécifique, qui ne supprimera que le fichier lié durement de la ou des capture (s) que vous spécifiez, en supposant que le fichier ne se trouve pas dans un répertoire lié durement, car vous supprimeriez alors le fichier de tous les fichiers. ces répertoires liés.

Eric W
la source
+1 !! Cela m'a aidé. Je n'ai même pas essayé les autres parce que cela ressemblait à "la bonne façon" et, en effet, cela m'a permis de résoudre le problème sans autre question. Merci!
triplee
J'ai créé un compte juste pour vous +1. Je cherchais une meilleure solution à ce problème, et le tour était joué. Cela m'avait rendu fou. Je vous remercie.
CWSpear
3
Impressionnant. Cela marche. (Bien que je laisse de côté l'option 'v' pour éviter de voir une entrée pour chacun des quelques centaines de milliers de fichiers) c'est-à-dire:sudo ...bypass rm -rf /Volumes/...
Brent Faust
6
C'est une méthode extrêmement dangereuse pour gérer les fichiers Time Machine; Time Machine utilise des répertoires liés pour référencer des dossiers qui n'ont pas été modifiés depuis la sauvegarde précédente. Toutefois, le rmprocessus ne les comprend pas, suivra ces liens et en supprimera les fichiers. Cela signifie que vous pouvez potentiellement supprimer des fichiers qui se trouvent également dans des sauvegardes plus anciennes et plus récentes que celle que vous avez sélectionnée, ce qui pourrait causer des dommages irréparables à la (aux) sauvegarde (s). La recommandation d'utilisation d'Arne Stenström tmutilest de loin la solution supérieure.
Haravikk
1
Pour prolonger un peu le commentaire de Haravikk: utiliser rmdes fichiers liés durement est acceptable, mais ce n'est pas le cas pour les dossiers liés durement . La réponse de Kent mentionne le même problème. Et dans Qu'est-ce que la commande Unix pour créer un lien physique vers un répertoire sous OS X? Quelqu'un a écrit pour 10.5 en 2010: "La suppression est une histoire différente: si vous vous y prenez comme d'habitude pour supprimer des répertoires, vous en supprimerez le contenu. Vous devez donc" dissocier "le répertoire: unlink new_hard_link". Vous ne devez donc l'utiliser que pour supprimer toutes les sauvegardes (instantanés) d'une machine donnée.
Arjan
26

BLUF (ligne du bas à l'avant):

sudo tmutil delete snapshot-dir


En utilisant pour supprimer tous les ACLs d'une hiérarchie de dossiers ne fonctionne pas sur les fichiers et les dossiers de Time Machine Backups.backupdb , en raison de la TM Safety Net mécanisme et les critères décrits dans le présent 318 Tech Journal post (mais peut - être pas exactement comme décrit) .     (Avant d'apprendre cela en cherchant dans le filet de sécurité mentionné dans la réponse d'Eric W (ce qui fonctionne), je n'avais testé que sur un dossier cloné à partir d'un sous-dossier d'une sauvegarde TM, et chmod fonctionnait. Mais essayer chmod sur un dossier dans un fichier réel La sauvegarde TM donne l'erreur "Opération non autorisée".)sudo chmod -R -N folder

D'utilisation possible:
    Sous Mac OS 10.7+, il existe une commande tmutil (que je n'ai pas encore essayée car je suis toujours sur Snow Leopard). Il comporte un verbe de suppression qui, selon la description, "peut supprimer des instantanés de sauvegardes qui n'ont pas été effectuées par la machine actuelle ou ne sont pas revendiqués par celle-ci" (où un "instantané" est un dossier daté représentant une sauvegarde incrémentielle unique). Il n'est pas clair pour moi si cela signifie qu'il ne peut pas supprimer des instantanés qui sont faites par ou revendiqués par la machine actuelle. (?)

Arne Stenström
la source
2
En effet, tmutil est utile et vous permettra de supprimer des sauvegardes ( tmutil delete /Volumes/DISK/Backups.backupdb/HOST/DATE_FOLDER). Cependant, vous avez toujours besoin de l'astuce de contournement d'Eric pour supprimer le dossier "Backups.backupdb" lui-même.
mardi
Mon OSX 10.8.3 (Mountain Lion) ne nécessite pas de contournement. Juste sudo tmutil delete <snapshot-dir>. La bypass rmréponse populaire est obsolète.
John Mee
Est-il possible d'utiliser tmutilpour supprimer seulement certains fichiers d'un instantané? Cela n'a pas fonctionné pour moi ( Invalid deletion target (error 22)) alors je suis allé avec à la bypassplace.
RTS - découvrez Monica Cellio
+1 pour BLUF. Avez-vous obtenu cela de Manager (Tools)? :)
Olie
Aussi: je continue à trouver des références à un Backups.backupdbrépertoire que je ne vois pas sur mon lecteur de sauvegarde (une capsule temporelle). J'ai juste des choses de la forme MachineName.sparsebundle. Le format a-t-il changé? J'essaie d'utiliser la commande delete backup de TM, mais elle est bloquée sur la barre de progression de 99,99% pendant plusieurs heures.
Olie
12

Avertissement concernant l'utilisation de la bypasscommande pour supprimer une ancienne sauvegarde: si la sauvegarde supprimée contient des dossiers identiques à ceux des sauvegardes précédentes ou ultérieures, les fichiers peuvent également être supprimés des sauvegardes antérieures ou ultérieures !

Time Machine utilise non seulement des liens physiques pour les fichiers non modifiés, mais également des liens physiques pour les dossiers dans lesquels aucun fichier n'a été ajouté, modifié ou supprimé. Cela donne quelque chose comme:

/2014-11-06/folder/file1
                  /file2
                  /file3
/2014-11-13/folder/file1 = hard link to file /2014-11-06/folder/file1
                  /file2 (changed; new inode)
                  /file3 = hard link to file /2014-11-06/folder/file3
/2014-11-20/folder/ = hard link to folder /2014-11-13/folder/
/2014-11-27/folder/ = hard link to folder /2014-11-20/folder/

Avec ce qui précède, supprimer n'importe quel fichier /2014-11-06/folder/est correct et n'affecte que la sauvegarde pour cette date. Le nombre de références de liaisons physiques est réduit, de sorte que "l' inode " file2sera supprimé, mais les inodes pour file1et file3auront toujours un nombre de références de 1 en raison des sauvegardes ultérieures. Par conséquent, rm -R /2014-11-06c'est bien aussi.

Cependant, supprimer tout fichier de l’un ou de l’autre /2014-11-13/folder/, /2014-11-20/folder/ou /2014-11-27/folder/le supprimera effectivement de tous ces 3 dossiers.

Le problème est que rm -Rpeu importe les dossiers liés. Il ne fait que récursir dans tous les dossiers durement liés qu'il trouve, efface hardiment tous ses fichiers, puis supprime le dossier vide.

Ainsi: lors de la suppression d'une ancienne sauvegarde, il ne faut pas recurse dans un dossier dur et supprimer son contenu. Au lieu de cela, vous ne devez supprimer que le lien physique du dossier lui-même . Donc, plutôt que d' rm -Rutiliser tmutil deletecomme expliqué dans la réponse d'Arne .

En passant, il semble que la unlinkcommande OS X ne puisse pas être utilisée sur des dossiers : "un seul argument, qui ne doit pas être un répertoire, peut être fourni" . L'API OS X peut supprimer les dossiers liés de manière rigoureuse, de même que GNU Coreutils , comme s'il était installé avec Homebrew .

Enfin, pour prouver tout ce qui précède, un scénario de test (OSX 10.6.8):

sh-3.2# ls -lFa 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist 
-rw-r--r--@ 2 USERNAME  staff  1551 10 30  2014 2014-11-06-012454/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME  staff  1551 10 30  2014 2014-11-13-024438/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME  staff  1551 10 30  2014 2014-11-20-014044/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME  staff  1551 10 30  2014 2014-11-27-025033/Users/USERNAME/Library/Safari/TopSites.plist

Notez que le nombre de liens pour chaque occurrence est 2 (deuxième colonne). Supprimons la première occurrence:

sh-3.2# /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass unlink 2014-11-06-012454/Users/USERNAME/Library/Safari/TopSites.plist 
sh-3.2# ls -lFa 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist 
-rw-r--r--@ 1 USERNAME  staff  1551 10 30  2014 2014-11-13-024438/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 1 USERNAME  staff  1551 10 30  2014 2014-11-20-014044/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 1 USERNAME  staff  1551 10 30  2014 2014-11-27-025033/Users/USERNAME/Library/Safari/TopSites.plist

Ainsi, après avoir dissocié l'un des fichiers, le nombre de liens est tombé à 1 pour chaque occurrence, même si le fichier est toujours affiché 3 fois. Pas de problèmes pour le moment. Supprimez à nouveau la première occurrence:

sh-3.2# /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass unlink 2014-11-13-024438/Users/USERNAME/Library/Safari/TopSites.plist 
sh-3.2# ls -lFa 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist 
ls: 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist: No such file or directory

Maintenant tous sont partis. Apparemment, le fichier a TopSites.plistété modifié pour la dernière fois le 2014-11-06 et lié en dur le 2014-11-13, à ce moment-là, certains autres fichiers ont été ajoutés, modifiés ou supprimés dans le Safaridossier. Ensuite, le contenu du Safaridossier n'a pas changé dans les deux sauvegardes suivantes. Ainsi, les 2014-11-20 et 2014-11-27, le Safaridossier était lié à la sauvegarde précédente.

En effet, les 4 dossiers n’utilisent que 2 inodes (première colonne):

sh-3.2# ls -lFaid 2014-11*/Users/USERNAME/Library/Safari/
648651968 drwxr-xr-x@ 86 USERNAME  staff  2924  9 10 16:06 2014-11-06-012454/Users/USERNAME/Library/Safari//
650804457 drwxr-xr-x@ 86 USERNAME  staff  2924  9 10 16:07 2014-11-13-024438/Users/USERNAME/Library/Safari//
650804457 drwxr-xr-x@ 86 USERNAME  staff  2924  9 10 16:07 2014-11-20-014044/Users/USERNAME/Library/Safari//
650804457 drwxr-xr-x@ 86 USERNAME  staff  2924  9 10 16:07 2014-11-27-025033/Users/USERNAME/Library/Safari//
Kent
la source
1
Quelques informations de base: pour les fichiers , les liens physiques fonctionnent comme prévu; seul le lien physique que vous souhaitez supprimer est supprimé. Comme: touch file1; ln file1 file2; ln file2 file3; ls -li; rm file2; ls -line supprimera qu'un seul lien dur. Mais pour les dossiers , dans Qu'est-ce que la commande Unix pour créer un lien physique vers un répertoire sous OS X? Quelqu'un a écrit pour 10.5 en 2010: "La suppression est une histoire différente: si vous vous y prenez comme d'habitude pour supprimer des répertoires, vous en supprimerez le contenu. Vous devez donc " dissocier "le répertoire: unlink new_hard_link". Ceci est probablement toujours valable.
Arjan
La page de manuel unlink(en 10.6.8) dit qu'il ne peut pas être utilisé sur des répertoires: When the utility is called as unlink, only one argument, which must not be a directory, may be supplied.
Kent
Hmmm, mystère. Plus encore, votre réponse est importante: n'utilisez pas de [bypass] rm -rrépertoires liés en dur. (Mais je n'ai pas à vous expliquer cela.)
Arjan
Je viens d'expérimenter un peu plus. Courir bypass unlink FILEa la même conséquence (involontaire?) Que bypass rm FILE. Le FICHIER identique est supprimé de toutes les sauvegardes, pas seulement du seul emplacement spécifié. Et, unlinkne prend PAS un répertoire ou plus d'un fichier comme argument (serveur 10.6.8; mais, je ne pense pas que cela aura changé avec les versions les plus récentes du système d'exploitation)
Kent
Wow, je suis assez surpris par votre bypass rm FILEet en bypass unlink FILEsupprimant tous les fichiers identiques, ce qui ne correspond pas à ce que l'on voit pour touch file1; ln file1 file2; ln file2 file3; ls -li; unlink file2; ls -li, ni pour touch file1; ln file1 file2; ln file2 file3; ls -li; /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass unlink file2; ls -li. Je ne vais jamais retirer quelque chose d'une sauvegarde ...
Arjan
3

Remarque: en raison du "filet de sécurité TM" mentionné par Eric W, cette réponse ne fonctionne pas dans le cas d'une sauvegarde Time Machine, à laquelle la question se rapporte spécifiquement. Mais dans la plupart des cas, les informations sur la manière de se débarrasser des listes de contrôle d'accès sont pertinentes.


Il n'est pas nécessaire d'utiliser des outils ACL copiés à partir d'un ancien système d'exploitation.

Utilisez ls -lepour afficher et chmodmodifier les ACL .

Pour plus d’informations, tapez man chmodet regardez sous ”Options de manipulation ACL”.

La commande permettant de supprimer toutes les listes de contrôle d'accès d'une hiérarchie de dossiers est la suivante:

chmod -R -N foldername
RAM
la source
2

Time Machine fonctionne comme rshapshot. Il crée une arborescence de liens durs pour chaque nouvelle sauvegarde. Les liens physiques vers des fichiers existants dans une sauvegarde précédente utilisent très peu d'espace supplémentaire. Ce n'est que lorsque le dernier lien dur vers un fichier est supprimé que le fichier est réellement supprimé du système de fichiers.

Supprimer une sauvegarde individuelle entière ne fera pas de mal. Vous ne faites que supprimer les liens durs. Aucune autre sauvegarde ne sera affectée. Mais cela peut être accompli via tmutil.

Un scénario dans lequel il peut être nécessaire de contourner la protection consiste à supprimer un fichier spécifique de toutes les sauvegardes (et la raison pour laquelle je me suis retrouvé dans ce post).

Mon disque de sauvegarde est plein. J'ai un très gros fichier (plusieurs giga-octets) qui a été sauvegardé pendant des mois. Il existe une copie physique de celle-ci, mais de nombreux instantanés avec des liens en dur vers cette copie. Pour réellement supprimer ce fichier, je dois supprimer le lien physique de chaque sauvegarde.

Notez que le numéro d'inode est le même pour tous les liens physiques vers le même fichier.

% cd /Volumes/WD\ 500G\ USB/Backups.backupdb/csm-laptop
% ls -li */Macintosh\ HD/Users/csm/vm.img
...
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-005636/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-015812/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-030036/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 2015-05-08-041307/Macintosh HD/Users/csm/vm.img
2740350 -rw-r--r--@ 28 csm  staff  42949672960 Feb 17 16:12 Latest/Macintosh HD/Users/csm/vm.img

(Dernier est juste un lien symbolique vers le dernier répertoire daté)

% sudo bypass rm -f */Macintosh\ HD\Users\csm\vm.img

Le fichier est supprimé de toutes les sauvegardes et de l'espace est retourné. Si le fichier a changé au fil du temps, chaque copie de sauvegarde aura une copie complète et l'espace retourné sera énorme.

Sec
la source
En ce qui concerne "Supprimer une sauvegarde individuelle individuelle ne fera pas de mal. Vous supprimez simplement des liens physiques. Aucune autre sauvegarde ne sera affectée." : si cela fait référence à des instantanés dans des sauvegardes pour une seule machine, donner la réponse (ancienne) de Kent utilisée rm -rpeut être (ou avoir été) dangereux. Mieux vaut prévenir que guérir et utiliser tmutilpour cela.
Arjan
0

Si vous n'exécutez pas la commande en tant qu'utilisateur "propriétaire" de la sauvegarde, vous aurez du mal à supprimer de la ligne de commande. Je venais de subir ce problème avec une migration et nous devions idem la sauvegarde complète de Time Machine (1 To +) et formater le disque avant de pouvoir obtenir un accès quelconque - et croyez-moi, j'ai tout essayé pour ignorer les autorisations.

Nic
la source
2
sudo devrait me donner accès à tous les fichiers en cours d'exécution en tant qu'administrateur. Je suis à peu près sûr que c'est un problème de LCA et j'y travaille.
Tim
1
Nic, quelques années de retard, mais au cas où tu l'aurais manqué: voir la réponse d'Eric .
Arjan
@ Tim: cette assertion serait même fausse sur d'autres systèmes unixoïdes, étant donné l'attribut immuable ( chattr). Ce que root vous donnera théoriquement, c'est de contourner tout filet de sécurité.
0xC0000022L
0

Si vous souhaitez supprimer tous les fichiers d'un dossier et pas seulement des fichiers spécifiques, vous pouvez le faire en ajoutant le dossier à la liste d'exclusion de Time Machine. (Préférences système -> Time Machine -> Options. Faites glisser le dossier ici.)

La prochaine fois que vous effectuerez une sauvegarde, des copies de ce dossier seront supprimées des sauvegardes précédentes.

Maintenant, si vous voulez vraiment faire cela à partir d'une interface de ligne de commande, il y a un moyen, quoique un peu lourd.

  1. Faites une sauvegarde de /Library/Preferences/com.apple.TimeMachine.plist
  2. Copiez /Library/Preferences/com.apple.TimeMachine.plist quelque part où vous pourrez jouer avec.
  3. Cd dans n'importe où vous le mettez.
  4. Exécutez-le
    plutil -convert xml1 com.apple.TimeMachine.plist
    pour le convertir à partir de la forme binaire.
  5. Ouvrez le répertoire converti dans un éditeur de texte préférable, recherchez "skippaths"
  6. Insérer une nouvelle ligne dans cette section, au format <string>/Path/To/Exclude</string>
  7. Sauvegarder et quitter, reconvertir en exécutant
    plutil -convert binary1 com.apple.TimeMachine.plist
  8. Recopiez votre répertoire modifié dans / Bibliothèque / Préférences /
  9. Démarrer une sauvegarde en exécutant
    /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper -auto

Modifier: à l'étape 9, toutes les copies du dossier nouvellement exclu seront effacées des sauvegardes précédentes.

Pour supprimer l'exception, copiez votre sauvegarde dans / Library / Preferences.

Gel
la source
Je ne cherche pas à exclure un répertoire. J'essaie de supprimer un répertoire d'une sauvegarde existante et d'en faire à partir de la ligne de commande. Vraiment, je voudrais juste comprendre comment permettre à rm de fonctionner dans un répertoire Backups.backupdb.
Tim
OK, mes instructions ne permettaient peut-être pas de comprendre que le dossier est réellement supprimé des sauvegardes lors de l'exécution des étapes ci-dessus. Voir mon édition. Mais si ce n'est pas la solution que vous cherchez, alors je suppose que vous pouvez toujours su - rootet rm -rfles dossiers, mais je pense que jouer avec quelque chose d' aussi précieux que les sauvegardes de cette façon est quelque chose qu'on devrait essayer d'éviter en général.
Frost
Mais l'ajouter en tant qu'exclusion supprime toutes les copies de toutes les sauvegardes. De plus, bien qu'il s'agisse d'une sauvegarde TimeMachine, ce n'est pas à partir de la machine sur laquelle je travaille, donc ce n'est plus une TimeMachine active. sudo a le même effet que "su - root" puis "rm -rf". Je suis sûr que cela échoue car Apple a ajouté un niveau de sécurité au système de fichiers allant au-delà des simples autorisations * nix.
Tim
Cela peut paraître stupide, mais je ne suis pas tout à fait sûr que cela sudoait le même effet que su - rootsur un mac. Il me semble me souvenir d’une occasion où j’essayais de supprimer quelque chose où sudocela ne suffisait pas, mais j’ai sudo - rootfait le tour.
Gel
3
@ Frost- Je ne pense pas que Time Machine fonctionne comme vous le suggérez. Je viens d'essayer d'exclure un dossier, puis d'exécuter TM, et les anciennes sauvegardes de ce dossier sont toujours présentes dans TM. Ou peut-être que son comportement a changé depuis que vous avez posté cela il y a près d'un an.
Caféine Coma
0

Vous pouvez créer une lsliste d'attributs étendus dans une vue longue à l'aide de l' -@indicateur. Il liste les ACL lorsque vous fournissez le -edrapeau. Donc, vous pouvez trouver ce que vous avez affaire en utilisant ls -lea@ DIR.

À en juger par mes sauvegardes Time Machine locales, il semble que Time Machine applique les attributs étendus avec des métadonnées sur les instantanés les plus récents et les plus anciens. Les données stockées par les xattrs ressemblent à des plist binaires. Celles-ci semblent anodines.

Time Machine cherche également à appliquer des listes de contrôle d'accès à certains répertoires connus, tels que ceux placés dans un répertoire utilisateur standard. Deux types d’ACL se dressent potentiellement sur votre chemin: ceux appliqués directement au fichier ou au répertoire qui refuse la suppression, et ceux appliqués à un parent du fichier qui refuse la commande delete_child.

Malheureusement, Mac OS X ne fournit pas les services utilisateur getfaclet setfaclspécifié par POSIX.2c pour afficher et manipuler ACLs. Pour jouer avec les ACL, vous devrez faire de la programmation; voir la acl(3)page de manuel.

Jeremy W. Sherman
la source