mandrake->plus de droits (apache/mysql) - resolu

mandrake->plus de droits (apache/mysql) - resolu - Divers - Linux et OS Alternatifs

Marsh Posté le 26-12-2005 à 16:20:55    

'lo : suite à l'installation d'un logiciel où j'ai un peu suivi bêtement les indications, j'ai modifié recursivement les droits sur les repertoires /etc, /var et /opt avec notamment :  
chown -R 0 /etc /var /opt
chmod 0600 /etc /opt
 
(...)
 
bref mon serveur apache/mysql ne me renvoie plus que des erreurs. Savez vous comment je peux revenir en arrière? :'(
 
Le serveur est en mandrake 10 et en root je n'ai plus les droits sur rien :
exemple :  
bash: /bin/ls: Permission denied
bash: /bin/chmod: Permission denied
 
aidez-moi [:sisicaivrai]


Message édité par Krapaud le 26-12-2005 à 18:22:24
Reply

Marsh Posté le 26-12-2005 à 16:20:55   

Reply

Marsh Posté le 26-12-2005 à 16:28:39    

han, j'ai plus de droits sur rien du tout, même en root, sudo ne fonctionne plus, su non plus :o
c'est la super merde :o

Reply

Marsh Posté le 26-12-2005 à 16:31:09    

Citation :

chown -R 0 /etc /var /opt  


je n'arrive pas à comprendre pourquoi on retire les droits de lecture à root (ID: 0) !
en fait l'ID du propriétaire de /etc et /var /opt est 0 (normalement root)
il existait un script permettant de remettre les droits par défaut par contre je te conseille avant tout, de booter sur une knoppix ou un liveCD pour remettre en état les répertoires /etc (chown -R root /etc )


Message édité par jlighty le 26-12-2005 à 16:45:55
Reply

Marsh Posté le 26-12-2005 à 16:36:53    

et ce script, tu saurais où je peux le trouver? :'(
 
merci :)

Reply

Marsh Posté le 26-12-2005 à 16:37:45    

en fait je n'ai plus accès à rien, y compris à /bin etc...
 

Reply

Marsh Posté le 26-12-2005 à 16:41:37    

Citation :

et ce script, tu saurais où je peux le trouver? :'(


je me souviens d'un script lancé par cron,  qui remettait automatiquement les droits (non disponible sur ma debian :( ). Si tu en as besoin rapidement -> passe par un liveCD et monte la partition "/" pour changer les droits d'accès.

Reply

Marsh Posté le 26-12-2005 à 16:51:49    

après reflexion voilà ce que tu as fait :
- le propriétaire des fichiers et dossier de /etc /var /opt est l'ID 0 (normalement root, il faut le verifier dans le fichier /etc/passwd)
- chmod 0600 /etc /opt  -> seul le propriétaire (root) peut lire et écrire dans les dossier /etc et /opt
 
Alors pourquoi ces opérations ont foiré :
- peut être que root n'a pas l'ID 0 , avec une knoppix, tu édites le fichier /etc/passwd  
- les dossiers n'ont pas apprécié de passer en lecture/ecriture (l'exécution étant retirée) on ne peut plus les lister. J'ai essayé cette manip, root arrivait cependant à lister le contenu d'un répertoire sans exécution.  

Reply

Marsh Posté le 26-12-2005 à 17:03:33    

bah là je n'ai plus rien.
 
J'ai booté sur une version de knoppix mais je ne peux pas monter les partitions (disque SCSI en ext3). je vais télécharger une autre version, mais pour l'instant il ne boot même plus, et le seul CD de mandrake que j'ai c'est mandriva :o

Reply

Marsh Posté le 26-12-2005 à 17:05:23    

par hasard, il n'existe pas un truc similaire à windows avec mandrake : la réparation sans suppression?
 
:'(

Reply

Marsh Posté le 26-12-2005 à 17:09:52    

en bootant avec la mandrake, tu peux accéder à un menu ("rescue" je crois) où tu peux monter tes partitions et accéder à un shell.

Reply

Marsh Posté le 26-12-2005 à 17:09:52   

Reply

Marsh Posté le 26-12-2005 à 17:12:00    

sachant que je n'ai qu'un CD mandriva, est-ce que je risque qqchose?
 
:'(
 
également, puisque je n'ai plus accès à rien, que ce soit /etc ou /bin ou  autre, comment est-ce que je peux faire pour récupérer un boot et au moins arriver à ouvrir une session en root?

Reply

Marsh Posté le 26-12-2005 à 17:17:13    

Citation :

sachant que je n'ai qu'un CD mandriva, est-ce que je risque qqchose?


non puisque c'est uniquement un problème de permissions sur /etc /opt et /var
 
Tu bootes avec le CD de la Mandriva puis tu tapes "rescue" au lieu de "linux" (ou touche entrée) puis tu montes la partition "/"
Ensuite tu devras verifier les permissions de tes répertoires etc avec "ls -l" et examiner que l'ID root est bien en 0 (fichier etc/group et etc/passwd)

Reply

Marsh Posté le 26-12-2005 à 17:21:28    

ok j'vais essayer ça.
 
En fait, ça touche bien plus que /etc  : ça touche l'ensemble du disque parce qu'entre temps j'ai refait une connerie :  
 
http://soft.zoneo.net/Linux/index. [...] =3&lang=en
 
comme un con je l'ai fait en étant positionné sur /
 
[:sisicaivrai]
 
maintenant quand je boot j'obtiens un kernel panic :/

Reply

Marsh Posté le 26-12-2005 à 17:32:37    

hum :/
si tu pouvais booter il y avait l'outil msec de mandriva qui aurait permit de rétablir les permissions mais là :/
je ne sais pas si tu peux t'en servir te chrootant .
sinon essayes péniblement de rétablir un peu de droit partout :D
 


---------------
Intermittent du GNU
Reply

Marsh Posté le 26-12-2005 à 17:34:55    

alors grace à jlightly je peux à nouveau booter, et ouvrir une session gui en root.
Par contre pas d'accès SSH, des repertoires dans /var qui ne fonctionnent pas et pas d'accès root en console : message = accès refusé
 
Si j'ouvre une session console en tant qu'utilisateur lambda ça fonctionne, par contre si je fais su : marche pas : impossible d'ouvrir les comptes de sécurité, et en sudo il me dit que ça ne marche pas non plus :o

Reply

Marsh Posté le 26-12-2005 à 17:35:18    

msec?
 
tu pourrais m'en dire plus? :jap:

Reply

Marsh Posté le 26-12-2005 à 17:40:46    

en fait je ne le connait pas très bien :/
je sais juste que c'est un 'truc' qui fixe les permissions de sécurité en fonction d'un niveau choisi :)
cf http://club.mandriva.com/xwiki/bin [...] AConnaitre
je pense donc qu'en l'utilisant il doit etre possible de remettre en place les bons droits un peu partout :)
le petit souci dans ton cas c'est lorsqu'on lit le man ...
 

Citation :

      msec - Outils de sécurité Mandriva Linux
 
SYNOPSIS
       msec ([-o <option>=<valeur>...]) ([0-5])
 
DESCRIPTION
       msec  est le script principal du paquetage msec. Il permet à l'adminis-
       trateur système de changer le niveau de sécurité de ce  système.   msec
       est  fourni  avec  six niveaux de sécurité déjà configurés. Ces niveaux
       s'échelonnent d'une sécurité minimale favorisant la facilité d'utilisa-
       tion,  à la configuration paranoïaque convenant aux applications sensi-
       bles des serveurs administrés par des experts.
 
       Vous devez être super-utilisateur (root) pour lancer msec .
       Lancer "msec x" pour obtenir le niveau de sécurité  x  (x=[0-5]).  Cela
       modifiera votre système vers les caractéristiques du niveau de sécurité
       x. Appelé sans arguments, cette  commande  réappliquera  le  niveau  de
       sécurité courant (sans rabaisser la sécurité).
       Tous les changements sont enregistrés via syslog(8) avec le niveau AUTH
       en mode non interactif (par exemple lorsque msec est appelé  par  cron)
       ou avec le niveau LOCAL1 en mode interactif (exécution en ligne de com-
       mande ou via le Centre de Contrôle de Mandriva Linux par exemple).
       Pour une description précise de chaque niveau de sécurité, consulter la
       documentation dans /usr/doc/msec-*/security.txt.
 
       Si  vous  souhaitez  modifier  le niveau de sécurité courrant, utiliser
       /etc/security/msec/perm.local afin d'outrepasser les  permissions/util-
       isateurs/groupes     (en     utilisant     la    même    syntaxe    que
       /usr/share/msec/perm.* ou en utilisant l'utilitaire graphique drakperm)
       et  /etc/security/msec/level.local  afin d'outrepasser les règles (voir
       mseclib(3) pour plus de détails ou l'utilitaire graphique drakperm).
 
       Options disponibles :
    -o all-local-files=<valeur>
              si <valeur> vaut 1, tous les fichiers  sont  traités  comme  des
              fichiers locaux.
 
       -o log=<valeur>
              si  <valeur>  est différente de syslog, ne pas enregistriter via
              syslog mais via la sortie d'erreur standarde.
 
       -o nolocal=<path>
              ne pas charger les règles de /etc/security/msec/level.local.
 
       -o non-local-fstypes=<valeur>
              <valeur> est une liste  de  type  de  systèmes  de  fichier  non
              locaux, séparés par des espaces.
 
       -o print=<valeur>
              si  <valeur>  est  égale à 1, affiche les valeurs par défaut des
              règles.
 
       -o root=<chemin>
              utilise <chemin> comme racine du système de fichier.
FICHIERS
       /usr/sbin/msec
       L'éxecutable msec (script shell)
 
       /var/lib/msec/security.conf
       Contient la configuration du niveau de  sécurité  actif.  Ces  réglages
       peuvent être annulés par /etc/security/msec/security.conf.
 
VOIR AUSSI
       mseclib(3), draksec, drakperm
 
AUTEUR
       Vandoorselaere Yoann, Mandriva
 
Mandriva                          13 Aou 2005                          msec(8)
 
 



---------------
Intermittent du GNU
Reply

Marsh Posté le 26-12-2005 à 17:41:41    

Citation :

si tu pouvais booter il y avait l'outil msec de mandriva


Oui c'était à ce programme que je pensais :jap:

Citation :

des repertoires dans /var qui ne fonctionnent pas et pas d'accès root en console


je suppose qu'en bootant avec le CD, les répertoires dans /var n'ont pas la permission de s'exécuter. Une chose que tu pourrais faire (à tes risques et périls) passer tous tes dossiers en 777 puis grâce à msec, il redonnera les bonnes permissions (755 pour les dossiers...)

Reply

Marsh Posté le 26-12-2005 à 17:47:22    

alors je boot tout correctement, sauf certains daemons (sshd par ex)
 
le message d'erreur pour sshd c'est : le repertoire /var/empty ne doit pas avoir les droits lecture/modification pour tout le monde.
 
sudo ne fonctionne pas non plus, il me dit que sudo doit avoir les setuid root :??:
 
et enfin j'ai modifié draksec pour abaisser le niveau de sécu, par contre msec je l'ai lancé mais ça ne fait rien du tout :D
 
j'vais regarder s'il n'y a pas autre chose à faire avec :)
 
 
en tout cas merci bcp :jap:

Reply

Marsh Posté le 26-12-2005 à 17:50:43    

si j'ai bien compris msec c'est un programme qui tourne régulièrement et s'assure que les autorisations sont les bonnes sur les dossiers et fichiers.
 
Donc je peux imaginer que sans rien faire il va me remettre tout comme il faut, où pas? :D
 
parce qu'en fait c'est vraisemblablement au niveau de /var que j'ai plein de problèmes :/

Reply

Marsh Posté le 26-12-2005 à 17:57:09    

msec est appelé par cron, tu peux accélérer la procédure en exécutant l'entrée de la crontab dédiée à msec.

Reply

Marsh Posté le 26-12-2005 à 17:57:34    

oui.
mais en théorie en lançant msec il devrait vérifier les permissions immédiatement .
(sauf si il ne peut pas se lancer a cause de problèmes de permission :sweat: ).
Après je n'en sais malheureusement pas plus.
Si dark_scheinder passe par là ...


---------------
Intermittent du GNU
Reply

Marsh Posté le 26-12-2005 à 17:59:19    

si c'est bon, je l'ai lancé, ça remarche pour presque tout, j'en ai fait à la main et puis msec doit faire le reste. SSH refonctionne, sudo aussi.
 
Par contre il me reste un bug lié à mon serveur apache/mysql : derrière j'ai un plugin ldap bien caché qui lui ne se lance pas a priori :o

Reply

Marsh Posté le 26-12-2005 à 18:01:51    

j'ai trouvé : j'ai des dossiers que seul root peut afficher :o
 
pour éviter les conneries, vous pouvez me dire quoi faire?
 
en root :

total 32
drwxrwxrwx  2 root root 4096 sep 14  2004 cgi-bin/
drwxrwxrwx  3 root root 4096 sep 14  2004 error/
drwxrwxrwx  6 root root 4096 jui 12 12:49 html/
drwxrwxrwx  3 root root 4096 sep 14  2004 html.old/
drwxrwxrwx  3 root root 4096 sep 14  2004 icons/
drwxrwxrwx  3 root root 4096 sep 14  2004 perl/
drwxrwxrwx  7 root root 4096 oct 28  2004 phpMyAdmin-2.5.7-pl1/
drwxrwxrwx  7 root root 4096 sep 28 13:22 phpMyAdmin-2.6.0-pl2/


 
en pas root :  
 

total 16
drwxrwxrwx  2 root     root 4096 2005-12-13 10:10 apache2-default
drwxrwxrwx  3 chanoine root 4096 2005-12-26 14:24 helpdesk
lrwxrwxrwx  1 root     root   21 2005-12-21 11:00 phpmyadmin -> /usr/share/phpmyadmin
drwxrwxrwx  2 root     root 4096 2005-12-21 10:41 sitephpinfo
-rwxrwxrwx  1 root     root   18 2005-12-20 15:55 test.php

Message cité 1 fois
Message édité par Krapaud le 26-12-2005 à 18:02:48
Reply

Marsh Posté le 26-12-2005 à 18:02:24    

il ne te reste plus qu'à examiner les logs d'apache pour voir pourquoi le module ldap n'est pas chargé ou d'ajouter le module dans httpd.conf

Reply

Marsh Posté le 26-12-2005 à 18:03:23    

Krapaud a écrit :

j'ai trouvé : j'ai des dossiers que seul root peut afficher :o
 
pour éviter les conneries, vous pouvez me dire quoi faire?


quel est le nom de l'utilisateur apache ? www-data ?

Message cité 1 fois
Message édité par jlighty le 26-12-2005 à 18:03:48
Reply

Marsh Posté le 26-12-2005 à 18:03:35    

c'est lié à cette histoire de droits, mais vu mon niveau d'incompétence je préfèrerais que vous me guidiez si possible :)

Reply

Marsh Posté le 26-12-2005 à 18:04:05    

jlighty a écrit :

quel est le nom de l'utilisateur apache ? www-data ?


pas la moindre idée, je pense que c'est l'utilisateur par défaut :o

Reply

Marsh Posté le 26-12-2005 à 18:04:36    

dans /etc/passwd quel est le nom dédié au daemon apache ? (www-data peut être)

Reply

Marsh Posté le 26-12-2005 à 18:05:27    

en fait l'idéal (pour moi ) est d'avoir des fichiers n'appartenant pas a l'utilisateur sous lequel tourne ton serveur web dans un premier temps :
en cas de faille au moins les fichiers ne seront pas effacés :D  
en suite il faut accorder la lecture de ces fichiers et éventuellement l'écriture sur certains répertoires lorsque cela est nécessaire .


---------------
Intermittent du GNU
Reply

Marsh Posté le 26-12-2005 à 18:05:32    

apache:x:72:72:system user for apache-conf:/var/www:/bin/sh

Reply

Marsh Posté le 26-12-2005 à 18:07:11    

mikala a écrit :

en fait l'idéal (pour moi ) est d'avoir des fichiers n'appartenant pas a l'utilisateur sous lequel tourne ton serveur web dans un premier temps :
en cas de faille au moins les fichiers ne seront pas effacés :D  
en suite il faut accorder la lecture de ces fichiers et éventuellement l'écriture sur certains répertoires lorsque cela est nécessaire .


 
 
j'en conviens. Le seul soucis c'est que je n'ai pas monté ce serveur et le presta n'a pas du se faire chier vu qu'il connaissait linux à peut près autant que moi. J'pense qu'il n'y a pas de gestion de droit, le blocage étant ces dossiers invisibles aux autres que root :o

Reply

Marsh Posté le 26-12-2005 à 18:07:47    

donc tu fais :
chown -R apache /var/www/html
puis chgrp -R apache /var/www/html  
chmod -R 755 /var/www/html
par contre il faudra surement rebasculer les fichiers en 644, avec un "find -type f" ça devrait être possible

Message cité 1 fois
Message édité par jlighty le 26-12-2005 à 18:09:27
Reply

Marsh Posté le 26-12-2005 à 18:12:00    

jlighty a écrit :

donc tu fais :
chown -R apache /var/www/html
puis chgrp -R apache /var/www/html  
chmod -R 755 /var/www/html
par contre il faudra surement rebasculer les fichiers en 644, avec un "find -type f" ça devrait être possible


je conserve mon erreur :o
 
en fait avant tous les fichiers étaient accessible par tous les utilisateurs :o
 
et dans mon site web j'ai ça :  
 

Cannot bind to : cn=mandrake,ou=blabla,dc=youpi,dc=tropcool,dc=com
Ldap Error: Invalid credentials
 
This script cannot continue, terminating.


Reply

Marsh Posté le 26-12-2005 à 18:16:16    

peut être que l'utilisateur "apache ?" n'a pas l'autorisation de se logguer sur ton annuaire LDAP ?
tu arrives à te logguer en administrateur sur ton annuaire ?


Message édité par jlighty le 26-12-2005 à 18:16:46
Reply

Marsh Posté le 26-12-2005 à 18:17:17    

je ne suis pas sur que ce soit lié a un problème de droit ici,
en tout cas d'après le message d'erreur donné .


---------------
Intermittent du GNU
Reply

Marsh Posté le 26-12-2005 à 18:17:50    

en fait le module ldap se connecte à mon active directory. Mais il doit y avoir un fichier de conf dans tout ces dossiers qui contient les paramètres de connexion à l'active directory :o

Reply

Marsh Posté le 26-12-2005 à 18:22:06    

je l'ai trouvé, effectivement les droits étaient erronés sur le fichier, seul root pouvait y accéder.
 
J'ai fait le chown, chgrp et chmod comme tu m'avais dit de faire sur le dossier html et là ça remarche :)
 
merci beaucoup à vous deux :)
 
 [:plat00n]  [:plat00n]  [:plat00n]  [:plat00n]  [:plat00n]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed