Rétablir les permission par défaut : mysql, postfix,

Bonjour,
Je dispose d’un serveur sous Debian 2.6.26-2-486, et j’ai fait une grosse bêtise…
J’ai lâché un :

avant d’avoir eu le temps de rentrer la suite… et j’ai mis un peu de temps à m’en rendre compte !

J’ai replacé les droits sur mes dossiers personnels, mais je n’ai plus de possibilité de rédiger d’article
sous mon site SPIP (sous mysql), et je ne parviens plus à recevoir de courrier de mon serveur imap.

Suis-je condamné à tout réinstaller ?..
Par avance, merci.

Salut,

Avec un petit récursif ???
J’ai peur de comprendre, tu as fait ça sur la racine ?

Pour ne rien te cacher, t’es un peu dans la mouise…

Méthode poussive, tu trouve une autre bécane (ou une VM) et tu remet les droits convenablement sur la machine “cassée” répertoire par répertoire, fichier par fichier…

Méthode pour les programmes : apt-get install --reinstall postfix… Ça règlera pas mal de problèmes. (n’oublie pas de faire une sauvegarde de tes fichiers de conf au cas ou - En principe il conservera les originaux modifiés, mais on est jamais trop prudent).

Pense à regarder les logs, je sais que postfix par exemple te dit si les droits ne sont pas convenables sur ses fichiers.

Bonne chance… :wink:

[quote=“lol”]Salut,

Méthode pour les programmes : apt-get install --reinstall postfix… Ça règlera pas mal de problèmes. (n’oublie pas de faire une sauvegarde de tes fichiers de conf au cas ou - En principe il conservera les originaux modifiés, mais on est jamais trop prudent).

Pense à regarder les logs, je sais que postfix par exemple te dit si les droits ne sont pas convenables sur ses fichiers.

[/quote]
C’est mieux de faire ceci (la reinstall) à mon avis, la première méthode s’applique plutot à un chmod récursif.

Si c’était dû à un chmod tu pourrais toujours remettre des permissions larges par défaut, par exemple :

cat /var/lib/dpkg/info/*.list | while read fn; do echo chmod 755 $fn; done
# le echo est volontaire :)

Ne change pas les droits, mais change les priopriétaires, c’est assez rapide:

/var/lib/mysql -> mysql
/var/mail -> mail

/var/www -> www-data

/home/user -> user

tu le fais au fur et à mesure des erreurs.

Un changement des droits serait un grave erreur car bcp plus compliqué à rétablir.

Tout d’abord : merci beaucoup pour toutes vos réponses !

Ensuite : j’ai omis le -R la dernière fois : il s’agissait donc bien d’un chmod récursif…

Le réinstallation de postfix n’a rien changé, ni celle de uw-imapd.

Donc, si j’ai bien compris, je dois tenter :

#chown -R mysql /var/lib/mysql
#chown -R mail /var/mail

sachant que :

#chown -R user /home/user

a déjà été fait.

Dois-je faire aussi :

#chown -R mysql /var/lib/mysql-cluster
#chown -R mysql /usr/share/webmin/caldera/mysql
#chown -R mysql /usr/share/webmin/mysql
#chown -R mysql /usr/share/mysql
#chown -R mysql /usr/bin/mysql
#chown -R mysql /etc/webmin/mysql
#chown -R mysql /etc/mysql
#chown -R mysql /etc/init.d/mysql
#chown -R mysql /home/mysql
#chown -R mail /var/spool/mail
#chown -R mail /usr/bin/mail
#chown -R mail /etc/mail

ou dois-je me fier uniquement aux répertoires mentionnés dans /etc/passwd ?

Merci.

Vas y au fur et à mesure que tu constates des soucis, demandes à des personnes: par exemple

find . -type d -owner mysql
me donne

./var/run/mysqld
./var/log/mysql
./var/lib/mysql
./var/lib/mysql/sympa
./var/lib/mysql/gepi
./var/lib/mysql/mysql

tu as donc intérêt à faire

chown -R mysql /var/run/mysqld /var/log/mysql /var/lib/mysql

demande à des utilisateurs de postfix. Pour mail version exim j’ai
./var/run/exim
./var/spool/popbull
./var/spool/exim
./var/spool/exim/input
./var/spool/exim/db
./var/spool/exim/msglog
./var/spool/greylist
./var/log/exim
./var/mail/.spamassassin
./var/mail

etc.

[quote]root@smtp:/var# find -type d -user postfix
./spool/postfix/active
./spool/postfix/deferred
./spool/postfix/deferred/2
./spool/postfix/deferred/C
./spool/postfix/deferred/1
./spool/postfix/deferred/D
./spool/postfix/deferred/9
./spool/postfix/deferred/E
./spool/postfix/deferred/6
./spool/postfix/deferred/B
./spool/postfix/deferred/A
./spool/postfix/deferred/4
./spool/postfix/deferred/0
./spool/postfix/deferred/5
./spool/postfix/deferred/7
./spool/postfix/deferred/3
./spool/postfix/corrupt
./spool/postfix/saved
./spool/postfix/bounce
./spool/postfix/private
./spool/postfix/defer
./spool/postfix/defer/2
./spool/postfix/defer/C
./spool/postfix/defer/1
./spool/postfix/defer/D
./spool/postfix/defer/9
./spool/postfix/defer/E
./spool/postfix/defer/6
./spool/postfix/defer/B
./spool/postfix/defer/A
./spool/postfix/defer/4
./spool/postfix/defer/0
./spool/postfix/defer/5
./spool/postfix/defer/7
./spool/postfix/defer/3
./spool/postfix/incoming
./spool/postfix/maildrop
./spool/postfix/hold
./spool/postfix/trace
./spool/postfix/public
./spool/postfix/flush
./lib/postfix
[/quote]
Voilà pour postfix (par contre owner n’était pas reconnu chez moi)

oui, c’est user et pas owner, je fais toujours cette confusion…

Salut,
Voici les droits sur /var/spool/postfix

# vdir /var/spool/postfix total 72 drwx------ 2 postfix root 4096 1 déc. 11:39 active drwx------ 2 postfix root 4096 18 nov. 18:09 bounce drwx------ 2 postfix root 4096 28 oct. 01:26 corrupt drwx------ 18 postfix root 4096 28 oct. 15:10 defer drwx------ 18 postfix root 4096 28 oct. 15:10 deferred drwxr-xr-x 2 root root 4096 1 déc. 06:06 dev drwxr-xr-x 3 root root 4096 1 déc. 06:07 etc drwx------ 2 postfix root 4096 28 oct. 18:30 flush drwx------ 2 postfix root 4096 28 oct. 02:06 hold drwx------ 2 postfix root 4096 1 déc. 11:39 incoming drwxr-xr-x 2 root root 4096 1 déc. 06:07 lib drwx-wx--T 2 postfix postdrop 4096 1 déc. 11:39 maildrop drwxr-xr-x 2 root root 4096 18 nov. 09:11 pid drwx------ 2 postfix root 4096 1 déc. 06:07 private drwx--s--- 2 postfix postdrop 4096 1 déc. 06:07 public drwx------ 2 postfix root 4096 28 oct. 01:26 saved drwx------ 2 postfix root 4096 29 nov. 11:22 trace drwxr-xr-x 3 root root 4096 28 oct. 01:16 usr

Les sous répertoires :

/var/spool/postfix/deferred/ et /var/spool/postfix/defer/ et /var/spool/postfix/flush/ et /var/spool/postfix/private/ postfix:postfix
/var/spool/postfix/etc/ et /var/spool/postfix/lib/ et /var/spool/postfix/pid/ et /var/spool/postfix/usr/ root:root
/var/spool/postfix/public/ postfix:postdrop

Bon ben : après avoir essayé de changer les utilisateurs des dossiers en question
comme indiqué ci-dessus (pour mysql et postfix en particulier), rien n’y fait.
Pire même : un reboot de la machine m’a carrément provoqué des erreurs mysql
qui font que mon site ne fonctionne même plus !

J’ai essayé de réinstaller mysql et postfix par :

mais rien n’y fait !

Je pense qu’il ne me reste plus qu’à tout réinstaller…

La prochaine fois, plutôt que de faire un :

je me placerai dans le dossier dans lequel effectuer la modif et taperai plutôt :

ça évitera les bêtises de ce type !

Merci quand même !

Tu as fait des changements récursifs?? Parce que ça m’étonne tout de même que mysql ne démarre pas, j’ai déjà eu ce genre de gag et n’ai pas eu de gros gros pbms à remettre le truc en route…

J’ai fait des récursifs :

#chown -R mysql /var/run/mysqld
#chown -R mysql /var/log/mysql
#chown -R mysql /var/lib/mysql
#chown -R mysql /var/lib/mysql/mysql

et j’ai la page d’accueil de mon site visible, mais je n’ai plus
la possibilité de modifier la base de données.

Je précise que j’ai installé un site sous spip.
J’obtiens à chaque demande de connexion le message suivant :

[quote]
Pour vous identifier de façon sûre sur ce site, vous devez accepter les cookies.
Veuillez régler votre navigateur pour qu’il les accepte (au moins pour ce site).[/quote]

alors que mon navigateur accepte les cookies et qu’une première connexion m’avait été possible
avant reboot du serveur, simplement avec des erreurs d’affichage dans l’espace privé
(du type : affichage de la page d’accueil sur les onglets d’administration empêchant toute
modification de la base).

A part des problèmes de base de donnée, je ne vois pas trop d’où ça pourrait venir…

Par ailleurs, la commande :

me donne :

C’est normal ?

Seule la commande :

me donne les répertoire
./var/lib/mysql/ et sous-répertoires,
./var/run/mysqld ,
./var/log/mysql et
./proc/6903 et sous-répertoires.

Regarde le répertoire /tmp, tu as des sessions qui doivent appartenir à www-data. Je chercherais de ce coté.

C’est à dire ?
Voilà ce que j’ai pour /tmp :

debian:/home/user# ls -al /tmp total 25 drwxrwxrwt 7 root root 8192 d�c 11 14:36 . drwxr-xr-x 22 root root 1024 nov 7 19:16 .. drwxrwxrwt 2 root root 1024 d�c 11 10:34 .ICE-unix drwxrwxrwt 2 root root 12288 sep 14 2008 lost+found drwxr-xr-x 2 root root 1024 d�c 11 10:36 .webmin drwxr-xr-x 2 root root 1024 d�c 11 10:36 .winbindd drwxrwxrwt 2 root root 1024 d�c 11 10:36 .X11-unix

et :

debian:/# find . -type d -user www-data ./var/lock/apache2 ./proc/6468 ./proc/6468/task ./proc/6468/task/6468 ./proc/6468/task/6468/attr ./proc/6468/net ./proc/6468/attr ./proc/6469 ./proc/6469/task ./proc/6469/task/6469 ./proc/6469/task/6469/attr ./proc/6469/net ./proc/6469/attr ./proc/6623 ./proc/6623/task ./proc/6623/task/6623 ./proc/6623/task/6623/attr ./proc/6623/net ./proc/6623/attr ./proc/6798 ./proc/6798/task ./proc/6798/task/6798 ./proc/6798/task/6798/attr ./proc/6798/net ./proc/6798/attr ./proc/7271 ./proc/7271/task ./proc/7271/task/7271 ./proc/7271/task/7271/attr ./proc/7271/net ./proc/7271/attr ./proc/7273 ./proc/7273/task ./proc/7273/task/7273 ./proc/7273/task/7273/attr ./proc/7273/net ./proc/7273/attr ./proc/8856 ./proc/8856/task ./proc/8856/task/8856 ./proc/8856/task/8856/attr ./proc/8856/net ./proc/8856/attr ./proc/8924 ./proc/8924/task ./proc/8924/task/8924 ./proc/8924/task/8924/attr ./proc/8924/net ./proc/8924/attr ./proc/9234 ./proc/9234/task ./proc/9234/task/9234 ./proc/9234/task/9234/attr ./proc/9234/net ./proc/9234/attr ./proc/9488 ./proc/9488/task ./proc/9488/task/9488 ./proc/9488/task/9488/attr ./proc/9488/net ./proc/9488/attr find: `./proc/9554/task/9554/fd/5': Aucun fichier ou r�pertoire de ce type find: `./proc/9554/task/9554/fdinfo/5': Aucun fichier ou r�pertoire de ce type find: `./proc/9554/fd/5': Aucun fichier ou r�pertoire de ce type find: `./proc/9554/fdinfo/5': Aucun fichier ou r�pertoire de ce type

Regarde dans le fichier php.ini ou php met ses données et vérifies les droits, sinon regarde dans /var/log/apache2/error.log

Bingo !
Problème de droits qui sort de je-ne-sais-où puisque je n’y avais à priori pas touché !

J’ai regardé dans /var/log/apache2/error.log et ai trouvé en particulier :

pour quelques fichiers.

Un #chmod -R 777 /var/www/tmp /var/www/IMG /var/www/config et tout est
rentré dans l’ordre… pour le site !

J’envoie des mails (donc pour postfix, les commandes cités au dessus ont suffit),
mais ne reçois rien de mon serveur imap. (la réinstallation du paquet uw-imapd ne donne rien).
Si quelqu’un pouvait me dire quels sont les propriétaires en replacer sur quels dossiers…

Que voulais-tu dire par :

Pour php.ini, j’ai ceci au niveau des droits :

debian:/home/user# ls -l /etc/php5/apache2/php.ini -rwxr-xr-x 1 root root 44727 sep 23 09:39 /etc/php5/apache2/php.ini

Mon phpmyadmin étant inaccessible (Erreur lors du démarrage de la session,
veuillez vérifier les erreurs indiquées par PHP ou dans le fichier témoin du serveur web,
et configurer PHP correctement.), il doit bien y avoir quelque souci avec php …

Merci !

Pour tes problèmes de sessions, c’est stocké dans /var/lib/php5, voilà ce que j’ai chez moi :

root@smtp:/var/lib/php5# ls -lah total 64K drwx-wx-wt 2 root root 4,0K 11 déc. 23:12 . drwxr-xr-x 45 root root 4,0K 14 nov. 20:54 .. -rw------- 1 www-data www-data 300 11 déc. 23:12 sess_3osj1heb45hlfefalbupqiuv96 -rw------- 1 www-data www-data 300 11 déc. 23:04 sess_m50fsc7q3in8qh6n3m5m06qjk2 -rw------- 1 www-data www-data 44K 11 déc. 23:04 sess_qfpf2ofiqgdkq7n02q072c45o7a1c7mq -rw------- 1 www-data www-data 108 11 déc. 22:56 sess_thr1478p713sb6ljs3nququ1p7 root@smtp:/var/lib/php5# cd .. root@smtp:/var/lib# ls -lah|grep php5 drwx-wx-wt 2 root root 4,0K 11 déc. 23:12 php5
Et pour phpmyadmin :

root@smtp:/var/lib# ls -lah|grep phpmy drwxr-xr-x 2 root root 4,0K 18 févr. 2010 phpmyadmin root@smtp:/var/lib# cd phpmyadmin/ root@smtp:/var/lib/phpmyadmin# ls blowfish_secret.inc.php config.inc.php root@smtp:/var/lib/phpmyadmin# ls -lah total 12K drwxr-xr-x 2 root root 4,0K 18 févr. 2010 . drwxr-xr-x 45 root root 4,0K 14 nov. 20:54 .. -rw-r----- 1 root www-data 60 18 févr. 2010 blowfish_secret.inc.php -rw-r----- 1 root www-data 0 18 févr. 2010 config.inc.php

Glorf a répondu pour le php.ini (c’est là où on trouve où php met ses variables, c’est /var/lib/php5 chez moi aussi).
Pour imap, imapd tourne avec le groupe mail, il y a donc des répertoires qui doivent appartenir à des personnes mais dont le groupe est à mail, tous les fichiers de /var/mail sont au groupe mail

-rwxr-sr-x 1 root mail 84588 4 févr. 2010 /usr/sbin/imapd
(cd /var/mail puis chgrp mail * ou qque chose d’approchant). Il faudrait que quelqu’un utilisant ce paquet te donne la liste des fichiers appartenant au groupe mail.

J’obtiens :

-> Pour php5

debian:/var/lib/php5# ls -lah total 8,0K drwxr-xr-x 2 root root 4,0K sep 27 14:09 . drwxr-xr-x 68 root root 4,0K nov 17 08:03 .. debian:/var/lib/php5# cd .. debian:/var/lib# ls -lah|grep php5 drwxr-xr-x 2 root root 4,0K sep 27 14:09 php5
Donc :

  • il doit y avoir un souci de permissions sur les répertoires . et …
  • je n’ai rien sur les sessions dans php5.

Si je cherche des fichiers de session de ce type, voilà ce que j’obtiens :

debian:/var/lib/phpmyadmin# find / -name sess_* /usr/share/man/man1/sess_id.1ssl.gz /usr/share/doc/openssl/doc/apps/sess_id.pod
donc, rien qui y ressemble…
Par ailleurs, dans /etc/php5/apache2/php.ini, il y a la ligne :

;session.save_path = /var/lib/php5
Cette ligne ne devrait-elle pas être dé-commentée ?

-> Pour phpmyadmin :

debian:/var/lib# ls -lah|grep phpmy drwxr-xr-x 2 root root 4,0K mai 7 2009 phpmyadmin debian:/var/lib# cd phpmyadmin/ debian:/var/lib/phpmyadmin# ls -lah total 16K drwxr-xr-x 2 root root 4,0K mai 7 2009 . drwxr-xr-x 68 root root 4,0K nov 17 08:03 .. -rwxr-xr-x 1 root www-data 63 nov 15 2008 blowfish_secret.inc.php -rwxr-xr-x 1 root www-data 593 nov 15 2008 config.inc.php

sachant que j’avais root:root au départ pour blowfish_secret.inc.php et config.inc.php
(je viens de les changer).

Au niveau des permissions sur ces deux fichiers, je les laisse comme elles sont ou je change ?

-> pour /var/mail :

debian:/var/mail# ls -lah
total 328K
drwxrwsrwx  2 root       root     4,0K oct 18  2009 .
drwxr-xr-x 19 root       root     4,0K sep 19 16:51 ..
-rwxrwxrwx  1 christophe nous        0 d�c 18  2008 christophe
-rwxrwxrwx  1 www-data   www-data 316K nov 17  2009 www-data[/code]

Donc, peut-être dois-je faire :
[code]chgrp -R mail /var/mail[/code]

[b]-> pour /usr/sbin/imapd :[/b]
[code]-rwxr-sr-x 1 root mail 81304 d�c 30  2008 /usr/sbin/imapd

Là, ça semble bon.

chgrp -R mail /var/mail
me semble judicieux

Pour phpMyadmin, je ne peux t’aider, je n’utilise pas.