EDIT : Le problème était qu'Apple utilise des autorisations pour marquer les sauvegardes et vous empêche de les modifier (probablement une fonction de sécurité). En utilisant, chmod -RN <dir>j'ai supprimé les données ACL de tous les dossiers contenant des données importantes et cela m'a permis de devenir moi-même le propriétaire et d'appliquer les autorisations appropriées.
Question d'origine
J'ai une sauvegarde extrêmement volumineuse (> 700 Go) qui a maintenant les mauvaises autorisations (mon UID a changé lors d'une installation propre, longue histoire) et je dois les changer. L'option qui prend du temps consiste à parcourir manuellement chaque dossier et à modifier les autorisations, mais cela prendra du temps.
Je veux utiliser chownpour me faire propriétaire de toutes mes données importantes, puis utiliser chmod 700sur tous ces dossiers pour ne donner des rwxautorisations qu'à moi.
La solution idéale est une méthode d'utilisation findpour rechercher récursivement des dossiers correspondant à une expression régulière (la mienne actuelle .*/[DCV].*|Pictures|M[ou].*), puis faire de mon UID le propriétaire et définir les autorisations sur 700.
Le point important que je ne peux pas saisir:
Cependant, lorsque j'essaie de courir, chown Me DirectoryNameje reçois chown: DirectoryName: Operation not permitted.
Tout ce que je trouve est lié à la modification des autorisations d'un fichier et non d'un répertoire. Peut-être que je regarde ça dans le mauvais sens?
Quelque chose me dit qu'il n'y a aucun moyen de donner mon UID rwxet ---à tout le monde.
Comment puis-je atteindre cet objectif? J'utilise Mac OS X 10.10.3.
Je sais qu'il s'agit d'un forum UNIX / Linux (et j'utilise Mac) mais cette question concerne beaucoup plus l'utilisation du shell, chown , chmodet les autorisations et les solutions affichées ici sera applicable à tout système d' exploitation UNIX. Il serait préférable que les solutions publiées fassent réapparaître mes anciennes sauvegardes dans Time Machine.
Merci à tous ceux qui ont répondu rapidement, mais chownne semblent tout simplement pas fonctionner sur les répertoires pour une raison quelconque. Le fait qu'il s'agisse d'une .sparsebundleimage disque sur un lecteur réseau est-il pertinent? J'ai supposé que ce serait la même chose que sur n'importe quel lecteur externe.
find . -user $other_uid -print0 | sudo xargs chown $USERdevrait fonctionner.
df -hT <dirname>devrait vous dire.
df -hT <dir> donne aucune sortie pour a) le répertoire racine du disque dur réseau b) l'image disque à l'intérieur du disque dur réseau c) n'importe quel dossier sur le disque dur réseau. Peut-être que le comportement que vous vouliez est implémenté différemment sur Mac et Linux?
root_squashactivé, vous ne pourrez donc pas effectuer d'opérations uniquement sur la racine, comme àchownpartir du client.