chown changé récursivement les autorisations

30

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

chown -R user:user {.,}*

{.,}* est utilisé avec mv et cp pour inclure à la fois les fichiers cachés et les fichiers listés. Maintenant, cette commande est passée en revue et a changé ces deux fichiers dans mon répertoire, mais j'ai dû casser pour arrêter depuis qu’elle se déroulait. Maintenant, je crains que cela ait disparu et que les autorisations sur les autres fichiers et dossiers aient été modifiées, car il ne s’est pas terminé.

    
posée nicoX 24.07.2014 - 17:35
la source

1 réponse

45

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

Étant donné que cette opération est assez lourde, votre appel chown a été interrompu, car de nombreux fichiers devaient être traités. Je vous suggère de retourner dans le répertoire où vous avez effectué l'appel et de revenir progressivement à / pour voir quelles modifications ont été apportées. Vous pourriez être en mesure d'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.

Sous Ubuntu, le répertoire /home est donné au premier utilisateur (admin / sudo) enregistré sur le système. Si vous êtes le seul utilisateur, vous pouvez le faire:

chown you:yourgroup /home -R

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

Un rapide coup d’œil à / (y compris les permissions root elles-mêmes, ls -ld / ) serait également un bon début. Je vous suggère de vous assurer que / appartient à root, avec un ensemble d'autorisations de 755.

Si vous avez utilisé chown pour définir une propriété très spécifique (un utilisateur autre que vous ou root, un groupe rare, ...), vous pouvez utiliser find pour rechercher les fichiers chown -ed .

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

Malheureusement, undo n'existe pas pour ce que vous avez fait. Linux ne conserve pas naturellement les traces de ces opérations "occasionnelles".

Pour plus d’informations sur ce que vous essayez d’atteindre, consultez cette question SuperUser .

    
réponse donnée John WH Smith 24.07.2014 - 17:42
la source

Lire d'autres questions sur les étiquettes