Les droits d'Apache

Résolu
Apatik Messages postés 6040 Statut Contributeur -  
 zamouranou -
Bonjour,

Je viens d'installer mon serveur web sur une machine Virtuelle sous Ubuntu Server.
J'utilise Apache2. Pour optimiser les droits dans le dossier /var/www/ j'ai actuellement donné le dossier en question à mon user "apatik:apatik" afin de ne pas être embété. Mais quel chmod mettre? Je n'ai pas vu d'user "Apache" dans /etc/passwd. En tant que quel user Apache accède-t-il a ce dossier? En Root? C'est pas dangereux d'un points de vue sécurité? Et je me pose les mêmes questions pour PHP.



--
Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.

5 réponses

  1. Xavstarblues Messages postés 10585 Date d'inscription   Statut Contributeur Dernière intervention   1 858
     
    Salut
    généralement, pour un serveur web, tu peux mettre les droits sur les dossiers en 644 ou 640

    Je te renvoie vers cette page, pour la compréhension des droits
    https://fr.wikipedia.org/wiki/Chmod
    0
    1. Apatik Messages postés 6040 Statut Contributeur 789
       
      Merci, j'avais commencé par là ;)
      Sauf que pour comprendre pourquoi je met ces droits là.. j'aimerai comprendre par l'intermédiaire de quel utilisateur Apache et PHP utilisent ces fichiers. A priori, si on met du 6 et pas du 7, c'est par Root pour pouvoir éxécuter le fichier?

      Il n'y a pas moyen de créer un user pour Apache et PHP qui aurait un droit de lecture-éxécution, mais pas d'écriture? Enfin j'essaie de réfléchir à la sécurité.. peut-être que je fait fausse route..
      0
    2. Xavstarblues Messages postés 10585 Date d'inscription   Statut Contributeur Dernière intervention   1 858
       
      apache étant un daemon, je pense que c'est le système qui le fait tourner avec les droits root.
      pour php c'est pareil, c'est une partie de apache qui traite le php.
      0
    3. Apatik Messages postés 6040 Statut Contributeur 789
       
      Ok.. Ce qui veux dire que si par une faille quelconque on réussis à uploader un fichier php (genre c99shell) chez moi (ou via un include, ..) le type a directement un accès root chez moi? Flippant je trouve...
      0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    En tant que quel user Apache accède-t-il a ce dossier? En Root? C'est pas dangereux d'un points de vue sécurité?
    Non, pas en root ;-)

    le type a directement un accès root chez moi?
    Non, pas du tout

    Affiche le résultat de
    grep -i user /etc/apache2/apache2.conf 
    ps aux| grep apache


    GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
    106485010510997108
    0
    1. Apatik Messages postés 6040 Statut Contributeur 789
       
      Zut.. chui pas chez moi, et au boulot on a un peu un proxy ultra restrictif (même google passe pas), et les clients SSH sont tous payants sur l'AppStore.. Bref, je peux pas regarder ça avant ce soir.

      Ceci dit, c'est une Ubuntu Server tout d'origine.. Si ça peux aider.
      0
  3. Apatik Messages postés 6040 Statut Contributeur 789
     
    Ok, donc pour le grep -i user /etc/apache2/apache2.conf
    User ${APACHE_RUN_USER}
    # Include all the user configurations:
    LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
    LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%{User-agent}i" agent
    


    Et pour le ps aux | apache
    root     15249  0.0  0.5   5408  2556 ?        Ss   Aug23   0:00 /usr/sbin/apache2 -k start
    www-data 15251  0.0  0.3   5180  1744 ?        S    Aug23   0:00 /usr/sbin/apache2 -k start
    www-data 15252  0.0  0.6 227244  3428 ?        Sl   Aug23   0:00 /usr/sbin/apache2 -k start
    www-data 15253  0.0  0.6 228556  3560 ?        Sl   Aug23   0:00 /usr/sbin/apache2 -k start
    apatik   21710  0.0  0.1   3320   800 tty1     S+   09:04   0:00 grep --color=auto apache
    
    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Dans le fichier se configuration se sont des variables et pas le nom en dur d'utilisateur apache2
    Elle doit être définie quelque part dans les fichiers d'apache2
    Peut être
     rgrep APACHE_RUN_USER /etc/apache2

    En revanche dans la deuxième commande on vois qu'il y a une instance root et plusieurs instances www-data

    www-data c'est l'utilisateur pour apache2

    Pourquoi une instance root?
    Elle est nécessaires à cause d'ouverture d'un port inférieur 1024, en l'occurence 80
    Le rôle de l'instance root c'est de surveiller l'état (occupée ou attente)
    A savoir aussi que l'instance root n'est pas à l'écoute.

    Les instances www-data sont à l'écoute des requêtes web faites par les clients.

    Donc tu n'as pas à te faire de soucis pour le compte root.
    0
    1. Apatik Messages postés 6040 Statut Contributeur 789
       
      Ok, merci pour ces infos. En voyant le ps aux j'ai compris qu'il y avait ce fameux www-data, mais pas le root.
      Tout s'éclaire un poil.. Ce qui veux dire que si je met pas d'autorisations de lecture aux "autres" sur mon dossier /var/www/ Je vais me tapper une erreur 403 sur mon site? Je vais tester.
      Par contre plusieur questions (comme je suis pas chez moi):
      -Dans le fichier de config que je vais trouver, il y a les mdp www-data et root pour qu'Apache puisse s'éxecuter avec ces droits? Ou alors www-data n'a pas de mdp et utilise un "sudo" pour lancer l'instance en root?
      -Pourquoi il y a plusieurs instances en www-data? Je n'imaginais qu'une seule instance pour l'écoute au départ, ok il y a la root qui supervise, mais les deux autres?

      Merci d'avance pour tes réponses qui m'éclaircissent bien des choses =)
      0
    2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Re,

      Juste une petite correction.
      J'ai pensé à processus fils et j'ai écrit instance.
      Donc il s'agit de processus fils et pas d'instances.
      0
    3. Apatik Messages postés 6040 Statut Contributeur 789
       
      Va pour les processus fils.. (Faudra que je fasse des recherches, mais ce sera possible quand je serais chez moi uniquement.. j'aurais sans doute d'autres questions après, mais j'ai pas envie de te demander des choses "basiques").

      Ceci dit, je suppose qu'ils ont quand même chacun un rôle précis.. Tu ne saurais pas lesquels?
      Quand aux histoires de connection et de compte.. tu saurais me dire comment ça se passe? (Dans les grandes lignes, j'appronfondirais mes recherches ensuite..).
      0
    4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Re,

      Au début apache crée un processus parent sous l'identité de root.
      Il s'agit du processus qui va créer (fork) et gérer les processus fils.

      Ce processus principal, ne réagira à aucune requête.
      Les requêtes sont prises en charge par les processus fils inactifs (il y a des variables environnement qui définissent le nombre minimum et maximum de processus fils.

      Quand une requête arrive, elle sera prise en charge pour un processus fils inactif.
      S'il n'y a plus de processus fils inactif alors le processus père crée un nouveau processus fils pour recevoir la requête entrante.
      0
    5. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Re,

      Quand aux histoires de connection et de compte.. tu saurais me dire comment ça se passe?
      Donc il n'y a pas des connexions au niveau de daemon apache si tu veux.
      Les connexion sur les sites (par exemple ccm) sont régler au niveau d'accès sur site par des scripts de connexion.
      A savoir qu'on peut utiliser les fichiers de configuratino d'apache pour permettre/interdire l'access aux utilisateurs

      Quand tu pourras regarde le résultat de
      grep www-data /etc/passwd
      Normalement tu verras que le shell de connexion de www-data est soit nologin soit false.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. zamouranou
     
    bonjour svp j'ai un erreur de pkill: 12132 - Operation not permitted!!! j'a besoin d'aide
    en effet j'exécute un script sh sous php
    voici le contenue de /etc/sudoers
    root ALL=(ALL) ALL
    www-data ALL=(ALL) NOPASSWD
    merci d'avance
    0