Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/08/2010, à 09:57

AsTeR

Restaurer les droits par défaut sur une machine

Bonjour,

J'ai un petit malin qui a lancé :

/!\ commande dangereuse, à ne pas faire !

 chmod -R 777 /*

/!\ commande dangereuse, à ne pas faire !
J'ai résolu les premiers problèmes apparus du côté du /etc/sudoers, de ce côté là c'est résolu, voir : http://www.linuxquestions.org/questions … le-809437/

Par contre j'ai l'impression que cela à poser d'autres problèmes, en l'occurrence une impossibilité d'accès en ssh à la machine avec une erreur du type :

Read from socket failed: Connection reset by peer

Est-ce que quelqu'un à une idée de comment je pourrais restaurer les droits par défauts sur l'intégralité du système ?

Merci d'avance et bonne journée

Dernière modification par helly (Le 04/08/2010, à 10:31)

Hors ligne

#2 Le 04/08/2010, à 11:51

nesthib

Re : Restaurer les droits par défaut sur une machine

très honnêtement, le plus simple serait de réinstaller si le système n'a pas trop de spécificités à paramétrer (si le home est séparé il est possible de garder les documents mais il faudra réinitialiser certains fichiers de conf)

sinon, si tu disposes d'une seconde machine identique, tu peux tenter de récupérer les droits de chaque fichier et les inscrire dans un fichier texte ainsi :

find / -printf '%m/%h/%f\n' >fichier.txt

(je pense qu'il faut éventuellement modifier la commande pour exclure un certain nombre de dossiers, notamment les dossiers spéciaux)
tu auras un fichier de la forme

644//nom/de/fichier
700//nom/de/fichier2

ensuite sur la machine "cassée" :

while read line;
do
    DROITS=${line%%/*}
    FICHIER=${line#*/}
    echo chmod ${DROITS} "${FICHIER}"
done <fichier.txt

à lancer en root, le "echo" est à supprimer pour lancer réellement le script, et enfin il n'y a aucune garantie que cela fonctionne, dans tous les cas procéder à une sauvegarde au préalable


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 04/08/2010, à 12:24

figaro

Re : Restaurer les droits par défaut sur une machine

La configuration normale :

/   permissions 755 (drwxr-xr-x) avec propriétaire et groupe root
/tmp  permissions 777 (drwxrwxrwx) avec propriétaire et groupe root
/home  permissions 755 (drwxr-xr-x) avec propriétaire et groupe root
/home/<user>  permissions 755 (drwxr-xr-x) avec propriétaire et groupe <user>
/home/<user>/.dmrc  permissions 600 (-rw---) avec propriétaire et groupe <user>

Faire les chown et chmod correspondants en root pour rétablir la situation.

Cette configuration standard ne doit jamais être modifiée.

Dernière modification par figaro (Le 05/08/2010, à 16:44)


Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04

Hors ligne

#4 Le 04/08/2010, à 12:27

AsTeR

Re : Restaurer les droits par défaut sur une machine

Le système est une machine utilisée pour du développement web principalement donc la réinstallation est rapide et je pense que je vais appliquer cette option, n'ayant pas une autre machine à installation similaire...

Merci pour la réponse en tout cas, ton script sera certainement utile à d'autres.

Pour info, ça m'avait également corrompu MySQL.

@helly : merci pour la modification de mon poste, j'avais zappé d'indiquer le côté dangereux des commandes plus explicitement.

Hors ligne

#5 Le 04/08/2010, à 12:30

figaro

Re : Restaurer les droits par défaut sur une machine

Bizarre cette solution de rechercher une autre machine pour restaurer la configuration standard des droits et permissions ou de réinstaller. Alors que c'est si simple avec trois ou quatre chown et chmod.  sad

Mais l'on peut faire compliqué au lieu de faire simple, chacun vit sa vie comme il veut .... tongue

Dernière modification par figaro (Le 04/08/2010, à 12:33)


Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04

Hors ligne

#6 Le 04/08/2010, à 15:54

nesthib

Re : Restaurer les droits par défaut sur une machine

@figaro : je ne suis pas si sûr qu'il soit si simple de redéfinir toutes les permissions d'un système… personnellement je ne m'y risquerais pas, je n'ai pas la prétention de connaitre les permissions par défaut de tout les fichiers de mon système.
Certains programmes requièrent des permissions spécifiques sur leurs fichiers. Par exemple l'attribution de mauvaises permissions sur des fichiers de configuration d'un serveur ssh ou web peuvent résulter en un mauvais fonctionnement ou pire entrainer une faille de sécurité. C'est pourquoi je pense que ta solution est trop simpliste.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#7 Le 05/08/2010, à 10:01

figaro

Re : Restaurer les droits par défaut sur une machine

nesthib a écrit :

@figaro : je ne suis pas si sûr qu'il soit si simple de redéfinir toutes les permissions d'un système… personnellement je ne m'y risquerais pas, je n'ai pas la prétention de connaitre les permissions par défaut de tout les fichiers de mon système.
Certains programmes requièrent des permissions spécifiques sur leurs fichiers. Par exemple l'attribution de mauvaises permissions sur des fichiers de configuration d'un serveur ssh ou web peuvent résulter en un mauvais fonctionnement ou pire entrainer une faille de sécurité. C'est pourquoi je pense que ta solution est trop simpliste.

Qu'est-ce que tu racontes ? Il est très rare d'avoir autre chose que les permissions standard dans / et dans ce cas cela ne concerne que un ou deux fichiers qui doivent pouvoir ne pas être accessibles par d'autres comme le smbcredentials par exemple et qui passe en 600 (pour interdire la lecture à d'autres que root) au lieu de 644 ou le  /var/spool/samba que l'on règle en fonction des permissions que l'on veut accorder sur le réseau aux différents utilisateurs. Mais jamais de mettre la racine en 755 et root:root n'attaquera la sécurité.

Sur un serveur ssh ou apache on est en 755, comme déjà dit le standard sur une machine GNU/Linux c'est :

/                                  permissions 755 (drwxr-xr-x) avec propriétaire et groupe root
/home                           permissions 755 (drwxr-xr-x) avec propriétaire et groupe root
/home/<user>                permissions 755 (drwxr-xr-x) avec propriétaire et groupe <user>
/home/<user>/.dmrc       permissions 600 (-rw---) avec propriétaire et groupe <user>

Edit: ce qu'un chmod a défait un chmod le réparera.

Dernière modification par figaro (Le 05/08/2010, à 10:11)


Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04

Hors ligne

#8 Le 05/08/2010, à 11:18

snarf

Re : Restaurer les droits par défaut sur une machine

C'est plus subtil que cela en fait. Restaurer les droits du /home/ ou /root/ c'est simple, voire trivial

Là où cela devient "fnu" c'est quand tu vas restaurer les permissions spéciales, dont (liste non exaustive) :

* le /dev ou une mauvaise permission empechera certains péripheriques de fonctionner correctement
* Les repertoires de type tmp (/tmp /var/tmp ..) qui ont un flag particulier (+t)
* Les fichiers et reps qui ont une SUID ou SGID (+s)
* Les fichiers de configurations divers qui doivent avoir des droits particuliers (genre ta conf ssh qui devrait etre en 600 IIRC)
* Les fichiers et repertoire du /var/lib et /var/spool qui ont aussi des droits un peu space.
* Les sous-rep d'applicatifs qui n'ont pas les meme droits que leur parents.

Le plus souvent les messages d'erreurs seront plus ou moins abscons, ce qui ne faciliteras pas le debug

Le plus gros du travail est dans cette partie. D'expérience une reinstallation est plus rapide et plus raisonnable pour ta santé mentale wink

Dernière modification par snarf (Le 05/08/2010, à 11:19)


Ubuntu 8.04 armv5tel / Ubuntu 10.04 i386 / x86_64
Debian GNU/Linux Etch/Lenny/Squeeze/Sid  i386 / x86_64 / Sparc64
http://doc.ubuntu-fr.org/utilisateurs/snarf

Hors ligne

#9 Le 05/08/2010, à 11:19

piti

Re : Restaurer les droits par défaut sur une machine

figaro a écrit :

[…] ce qu'un chmod a défait un chmod le réparera.

ouai, enfin, un chmod -x /bin/chmod est pas forcement facile à réparer avec chmod
(attention, commande dangeureuse)

Dernière modification par piti-pablo (Le 05/08/2010, à 11:20)

Hors ligne

#10 Le 05/08/2010, à 11:20

nesthib

Re : Restaurer les droits par défaut sur une machine

@snaf : merci de ta confirmation

@figaro : si tu veux en avoir le cœur net :

find / \! \( -perm 600 -o -perm 755 \) -printf '%m\t%h/%f\n'

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#11 Le 05/08/2010, à 11:23

avelldiroll

Re : Restaurer les droits par défaut sur une machine

D'expérience une réinstallation est plus rapide et plus raisonnable pour ta santé mentale

+100
Et même en reprenant tout au cas par cas, on peut être sûr qu'on en aura oublier un quelque part ... bref on ne peut plus faire "confiance" à la machine pour se comporter normalement ... réinstaller le système n'est pas cher payé au vu de l'ampleur de la "boulette".


"Les ordinateurs permettent à l'humanité de faire des erreurs le plus rapidement du monde, ... à l'exception peut-être de la tequila et des armes à feu."
Merci de lire ceci de temps à autre ...

Hors ligne

#12 Le 05/08/2010, à 11:30

McPeter

Re : Restaurer les droits par défaut sur une machine

Sur un server de dev où il peut y avoir des milliers de fichiers différents ... faudra m'expliquer l'utilité de mettre des images en 755 .. ou encore (pire) un .htaccess en 755 o_O
comme le précisait nesthib ... .htaccess en 755 ... sécurité ?

"à vot' bon coeur"

Dernière modification par McPeter (Le 05/08/2010, à 11:31)

Hors ligne

#13 Le 05/08/2010, à 11:37

figaro

Re : Restaurer les droits par défaut sur une machine

snarf a écrit :

C'est plus subtil que cela en fait. Restaurer les droits du /home/ ou /root/ c'est simple, voire trivial

Là où cela devient "fnu" c'est quand tu vas restaurer les permissions spéciales, dont (liste non exaustive) :

* le /dev ou une mauvaise permission empechera certains péripheriques de fonctionner correctement
* Les repertoires de type tmp (/tmp /var/tmp ..) qui ont un flag particulier (+t)
* Les fichiers et reps qui ont une SUID ou SGID (+s)
* Les fichiers de configurations divers qui doivent avoir des droits particuliers (genre ta conf ssh qui devrait etre en 600 IIRC)
* Les fichiers et repertoire du /var/lib et /var/spool qui ont aussi des droits un peu space.
* Les sous-rep d'applicatifs qui n'ont pas les meme droits que leur parents.

Tout ce que tu cites dans / est en 755 root:root par défaut une réinstallation te les mettra dans cet état là.
les /dev sont en 755 root:root
Dans root tu n'as pas de suid ni de sgid par défaut et pour cause puisque tout est root.
les tmp sont sans intérêts car temporaires mais on les mets en 777.
ssh est en 755, la conf perso est dans /home/user
les conf perso des applications sont dans /home/user
etc ......

Dernière modification par figaro (Le 05/08/2010, à 16:45)


Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04

Hors ligne

#14 Le 05/08/2010, à 11:41

figaro

Re : Restaurer les droits par défaut sur une machine

McPeter a écrit :

Sur un server de dev où il peut y avoir des milliers de fichiers différents ... faudra m'expliquer l'utilité de mettre des images en 755 .. ou encore (pire) un .htaccess en 755 o_O
comme le précisait nesthib ... .htaccess en 755 ... sécurité ?

"à vot' bon coeur"

les fichiers sont en 644, les dossiers en 755
Où est le problème de sécurité ?

Dernière modification par figaro (Le 05/08/2010, à 11:43)


Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04

Hors ligne

#15 Le 05/08/2010, à 11:44

nesthib

Re : Restaurer les droits par défaut sur une machine

bon figaro puisque tu es si malin, fais donc un 755 sur la racine de ta machine et vois si tu arrives si facilement à restaurer ton système… en attendant on va éviter de partir dans le n'importe quoi en donnant de mauvaises idées aux débutants qui passeraient par là. merci

(sinon tu peux simplement lancer la commande que j'ai citée précédemment et tu verras tout ce qui n'est pas 755 ou 600 dans un install par défaut)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#16 Le 05/08/2010, à 11:46

avelldiroll

Re : Restaurer les droits par défaut sur une machine

les conf perso des applications sont dans /home/user

La conf des serveurs est dans /etc ... et dans 99% des cas demande des droits spécifiques.

Et c'est principalement dû au fait qu'il fasse sécuriser le système ...

C'est pas comme si c'était important de sécuriser les serveurs d'une machine de devweb ...

Par ailleurs certains programmes refuseront de tourner si la sécurité du système n'est pas jugée suffisante (je grossis beaucoup le trait, mais ça semble nécessaire).


"Les ordinateurs permettent à l'humanité de faire des erreurs le plus rapidement du monde, ... à l'exception peut-être de la tequila et des armes à feu."
Merci de lire ceci de temps à autre ...

Hors ligne

#17 Le 05/08/2010, à 11:48

snarf

Re : Restaurer les droits par défaut sur une machine

figaro a écrit :

Tout ce que tu cites dans / est en 755 root:root par défaut une réinstallation te les mettra dans cet état là.
les /dev sont en 755 root:root

Je te propose de faire un petit ls -alh /dev

figaro a écrit :

Dans root tu n'as pas de suid ni de sgid par défaut et pour cause puisque tout est root.

SUID SGID n'est pas lié au root mais au owner, man est SUID man par exemple. ce qui permet a un programme d'etre excuté en tant que l' owner et pas le user courant. 

figaro a écrit :

les tmp sont sans intérêts car temporaires.

Leur permissions non, le flag t est un peut différent. un chmod 755 sur /tmp et tes users ne peuvent plus ecrire dedans.
le +t sert a cela.
par exemple, par /tmp en ecriture -> pas de d-bus d'orbit etc ... (donc pas de X)

figaro a écrit :

ssh est en 755, la conf perso est dans /home/user
les conf perso des applications sont dans /home/user

tres clées privées sont en lecture pour tout le monde ? Yeahhhh \o/
Pas mal celle la, j'aime.

des cles servers pas en 600, ton sshd il refusera de démarrer.

Félicitations


Ubuntu 8.04 armv5tel / Ubuntu 10.04 i386 / x86_64
Debian GNU/Linux Etch/Lenny/Squeeze/Sid  i386 / x86_64 / Sparc64
http://doc.ubuntu-fr.org/utilisateurs/snarf

Hors ligne