MODIFIER : Le problème était que 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 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 nouvelle installation, 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 souhaite utiliser chown
pour devenir propriétaire de toutes mes données importantes, puis utiliser chmod 700
sur tous ces dossiers pour accorder des autorisations rwx
à moi seul.
La solution idéale est une méthode d'utilisation de find
pour rechercher récursivement des dossiers correspondant à une expression régulière (mon actuel est .*/[DCV].*|Pictures|M[ou].*
), puis définissez mon UID comme propriétaire et définissez les autorisations sur 700.
Le point important que je ne peux pas saisir:
Cependant, lorsque j'essaie d'exécuter chown Me DirectoryName
Je 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 rwx
et ---
à 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
, chmod
, et les autorisations et toutes les solutions publiées ici sera applicable à tout système d'exploitation basé sur 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 chown
ne semble tout simplement pas fonctionner sur les répertoires pour une raison quelconque. Est-ce le fait qu'il s'agit d'un .sparsebundle
l'image disque sur un lecteur réseau est-elle pertinente? J'ai supposé que ce serait le même que sur n'importe quel disque externe.
J'ai peut-être mal compris. Mais vous pouvez utiliser récursivement chmod et chown par exemple.
chown -R username:username /path/directory
Pour appliquer récursivement l'autorisation 700, vous pouvez utiliser:
chmod -r 700 /path/directory
Bien sûr, ce qui précède est pour Linux, donc vous ne savez pas si mac osx est le même.
EDIT: Oui, j'ai oublié de mentionner que vous devez être root pour montrer quelque chose, je pensais juste que vous le saviez ... mon mauvais.
essayez en tant que root
find wherever -type d -name ... -exec chown Me {} \;
où
-type d
s'applique uniquement au répertoire-name ...
votre expression régulière-exec chown Me {} \;
utilisez chown sur find dir.vous devez être root pour chown.