web-dev-qa-db-fra.com

Perms modifiés sur les fichiers cachés / etc / skel, verrouillée en dehors de bash / sudo

Arrière-plan: j'ai commis une erreur de recrue sur un Ubuntu 14.04 VM et modifié récursivement les autorisations sur le dossier /etc. Je les ai restaurés dans un répertoire par défaut à la fois, en utilisant un modèle récent VM et en recherchant les autorisations appropriées sur apt-browse.org lorsque les fichiers n'existent pas dans le modèle. 'VM. Quand je suis arrivé dans le répertoire /etc/skel, les autorisations étaient de 660 sur .bash_logout, .bashrc et .profile, mais selon le modèle & apt-browse.org, ils devraient être 644. Après avoir accédé à /etc/skel, j’ai exécuté Sudo chmod 644 .*, puis à ls -la.

À partir de ce moment, je ne pouvais plus invoquer Sudo, ni exécuter aucune commande de Shell, y compris la navigation, la liste des fichiers, etc. Voir

x@Y:/etc/sgml$ cd /etc/skel/ && ls -la
total 28
drwxr-xr-x   2 root root  4096 Oct 10  2014 .
drwxr-xr-x 129 root root 12288 Sep 12 15:39 ..
-rw-rw----   1 root root   220 Mar 18  2013 .bash_logout
-rw-rw----   1 root root  3637 Apr 23  2014 .bashrc
-rw-rw----   1 root root   675 Mar 28  2013 .profile
x@Y:/etc/skel$ Sudo chmod 644 *
chmod: cannot access '*': No such file or directory
x@Y:/etc/skel$ Sudo chmod 644 .*
x@Y:/etc/skel$ ls -la
ls: cannot open directory .: Permission denied
x@Y:/etc/skel$ Sudo ls -la
Sudo: unable to stat /etc/sudoers: Permission denied
Sudo: no valid sudoers sources found, quitting
Sudo: unable to initialize policy plugin
x@Y:/etc/skel$ Sudo su
Sudo: unable to stat /etc/sudoers: Permission denied
Sudo: no valid sudoers sources found, quitting
Sudo: unable to initialize policy plugin

Capture d'écran d'origine

De plus, les sites Web sur le serveur génèrent maintenant une erreur 403: You don't have permission to access / on this server. Server unable to read htaccess file, denying access to be safe

Je n'ai pas d'accès physique au serveur, le démarrage en mode récupération pose donc problème. En outre, pourquoi cette autorisation a-t-elle modifié le fonctionnement de votre système? Selon la documentation, c'était la bonne chose à faire.

4
user315000

Vous avez couru

cd /etc/skel
Sudo chmod 644 .*

.* trouvera tous les .files (répertoires compris) dans le répertoire de travail actuel et le répertoire de travail actuel et le répertoire parent. Vous avez appliqué le mode 644 à ceux-ci:

.            <-- problem here as it's the working directory
..           <-- big problem here as it's the /etc directory
.bash_logout  
.bashrc  
.config      <-- problem here as it's a directory
.profile

La raison pour laquelle rien n'a fonctionné est que vous avez supprimé l'autorisation d'exécution sur le répertoire de travail en cours. Cela signifie que vous n'avez pas eu la permission d'être là!

Les répertoires doivent avoir une autorisation d'exécution pour être entrés ou recherchés. C'est en quelque sorte un cas Edge d'être dans un répertoire lorsque l'autorisation d'exécution en est retirée, mais dans cette situation, vous obtiendrez permission denied pour presque toutes les commandes.

Vous pouvez cd sortir du répertoire, mais vous ne pourrez pas réparer les autorisations sans accès physique car le fichier sudoers (dans /etc) ne peut pas être lu.

Vous pouvez soit

  • démarrez en mode de récupération, démarrez un shell racine et montez le système de fichiers en lecture-écriture en effectuant mount -o remount,rw /

  • démarrez dans une session en direct et montez la partition racine: Sudo mount /dev/sdxY /mnt (remplacez /dev/sdxY par le nom correct de la partition racine) puis cd /mnt

Vous n'avez pas fait chmod -R (heureusement!), Vous n'avez donc résolu que trois choses. En reprise, faites de même (mais avec Sudo et sans le premier / dans les chemins de /mnt dans une session en direct)

chmod 755 /etc
chmod 755 /etc/skel
chmod 755 /etc/skel/.config

pour restaurer les autorisations correctes.

2
Zanna