Reapply permissions after accidentally run chown or chmod on /

The problem

You have accidentally run a chown -R / or a chmod -R / instead of specifying the good path.

The proper way, in this case should be to restore your backup, but i know some of you doesn’t have made backup…

A kind of solution

  1. reinstall a yunohost B on the same architecture with the same app and same user created in the same order
  2. use getacl to backup permission from this new server B
getfacl -R / > permissions_backup
  1. If you have just change owner, and have access to a shell on the broken server A, restore permissions
setfacl --restore=permissions_backup /
  1. If you have not access in shell, you can mount the disk of your yunohost (for example in rescue mode, or using an iso), next go on your mounted path and apply permission
cd /mnt/disk
setfacl --restore=/root/permissions_backup .

It’s not tested, i wrote this to help an ARN member, but you can try this.

After that your server should be “better”. But, it’s not a super solution cause you can have some files in server A not existing in your new server B…

To repair a bit better, you could try to make backup, and force the upgrade of your apps:

yunohost app upgrade -F nextcloud

After what, you should search for files in you system with the wrong user (or permission), maybe you could repair it manually…

At this step trying to make backup and restore it on a fresh yunohost, could be a good idea.

3 Likes

Salut @ljf :wink:
Je ne comprends pas comment mettre en œuvre le petit tuto que tu as très sympathiquement fait.
J’ai quelques questions :
1 - reinstall a yunohost B… Comment puis-je faire cela ? Dois-je préalablement envoyer un mail à contact@arn ?
Tu indiques la même architecture… Si je comprends bien, c’est d’avoir une architecture parfaitement identique.
2 - pour le getacl, comment la commande réussit-elle a se connecter au serveur “A” qui est la source ?
Voilà mes premières questions…

Pour le 1: soit tu te créer une VM temporaire avec virtualbox par exemple, soit tu demandes à ARN de te fournir temporairement un autre VPS.

Par même architecture, j’entends la même architecture processeur. Mais effectivement il faut essayer de faire en sorte que les choses soient identiques, donc créer les utilisateurices et les apps dans le même ordre. Les apps doivent idéalement être installées de la même façon (avec les mêmes noms de domaine idéalement).

Pour le 2: getacl permet juste de mettre dans le fichier permissions_backup la liste des droits et utilisateurices associé à chaque fichier du système. Donc pour le 3, il faudra que tu transfères au préalable ce fichier sur le serveur A par exemple avec scp.

Dans ton cas, ça suppose de réparer SSH en premier pour éviter d’avoir à te connecter en VNC.