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