web-dev-qa-db-fra.com

Comment changer le propriétaire d'un répertoire

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.

15
Arc676

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.

23
dakka

essayez en tant que root

 find wherever -type d -name ... -exec chown Me {} \;

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

2
Archemar