Chown récursivement modifié les autorisations

34

J'ai lancé la commande chown dans un répertoire:

chown -R user:user {.,}*

Le {.,}*est utilisé avec mvet cppour inclure les fichiers cachés et répertoriés. Maintenant, cette commande a traversé et a changé ces deux fichiers dans mon répertoire, mais je devais le casser pour m'arrêter depuis le début. Maintenant, j'ai bien peur que cela ait changé les autorisations sur d'autres fichiers et dossiers, car il ne s'est pas arrêté.

nicoX
la source

Réponses:

46

En utilisant {.,}*, vous avez inclus les deux ./et ../. Avec l' -Roption, votre chownappel était sur le point de parcourir l'intégralité de votre système de fichiers (et d'autres, éventuellement montés), en passant ../. Avec d'autres commandes, cette petite erreur peut être assez meurtrière, mais croyez-moi, vous n'êtes pas le premier et vous ne serez pas le dernier ...

Comme cette opération est assez lourde, votre chownappel a été suspendu pendant un certain temps, car il avait beaucoup de fichiers à traiter. Je vous suggérerais de revenir au répertoire dans lequel vous avez appelé et de revenir progressivement /pour voir les modifications apportées. Vous pourrez peut-être appliquer une solution rapide en faisant:

chown root:root /* # Set ownership to root for all directories in /.
chown you:yourgroup /home/you -R # Take your home back.

Sur Ubuntu, le /homerépertoire est attribué au premier utilisateur (admin / sudo) enregistré sur le système. Si vous êtes le seul utilisateur, vous voudrez peut-être faire:

chown you:yourgroup /home -R

Cependant, un simple chmod 755sur /homesuffit, même s'il appartient à root.

Avoir un aperçu rapide directement /(y compris les autorisations de la racine elles-mêmes ls -ld /) serait également un bon point de départ. Je vous suggère de vous assurer que cela /appartient à root, avec un ensemble d'autorisations 755.

Si vous aviez l'habitude chownde définir une propriété très spécifique (un utilisateur autre que vous ou root, un groupe rare, ...), vous souhaiterez peut-être utiliser cette option findpour rechercher des chownfichiers avec l'option -ed.

find / -user {username}
find / -group {groupname}

Malheureusement, rien de tel que undoce que vous avez fait. Linux ne garde naturellement aucune trace de ces opérations "occasionnelles".

Pour plus d'informations sur ce que vous tentiez de réaliser, jetez un œil à cette question du superutilisateur .

John WH Smith
la source
Mon répertoire racine semble être bon. Il appartient à root.
nicoX
Vous devez avoir tué chownà temps alors, mais continuez à vérifier, en allant du répertoire chowndans lequel vous vous êtes exécuté , à la racine.
John WH Smith
Est-ce que le problème ici est que j'ai utilisé le drapeau -R? Et comment changer de propriétaire en une seule commande pour les fichiers cachés et listés.
nicoX
2
Voir le lien que j'ai ajouté à la fin de ma réponse. Le -Rétait le problème, puisque vous êtes allé récursivement ..aussi bien, qui finit par vous a amené à modifier l'ensemble de l' arborescence de fichiers à partir /deep/directory/where/you/chownedde /.
John WH Smith