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 17/09/2018, à 15:52

Blackdruid

Trouver le user qui se prend un permission denied

Salut,

Je suis régulièrement confronté à des problèmes de « permission denied » liés à l'absence d'un droit d'écriture sur un fichier ou sur un répertoire quand je bidouille avec des serveurs web (Nginx, Apache, PHP, NodeJS, PM2, etc.). Le plus compliqué dans ces cas-là étant de trouver quel user a besoin d'avoir le fameux droit d'écriture (apache, nginx, www-data, etc.).

Quelqu'un a-t-il une solution pour régler rapidement ce genre de problème ?

Je me suis penché sur la commande strace afin de suivre les accès i/o du disque et ça permet de voir clairement "poper" l'erreur :

write(2, "mkdir: ", 7mkdir: )                  = 7
write(2, "impossible de cr\303\251er le r\303\251perto"..., 44impossible de créer le répertoire «test») = 44

Malheureusement, impossible de voir quel user essaie de faire cet appel et il ne semble pas y avoir vu une telle option.

Dernière modification par Blackdruid (Le 17/09/2018, à 15:53)

Hors ligne

#2 Le 17/09/2018, à 21:51

Yann

Re : Trouver le user qui se prend un permission denied

Salut Blackdruid! Normalement le user pour tes serveurs web est configuré dans le fichier de configuration dudit serveur web, mais un moyen facile est de regarder est dans la liste des processus qui tournent: "ps -ef", tu cherches le serveur en question (apache?) et tu peux trouver dans la liste si il tourne sous www-data, apache, ou autre chose (le premier nom, tout a gauche, est le nom du user sous lequel le serveur tourne). Ensuite pour debuguer, tu peux te loguer avec le même user et essayer d aller dans le repertoire cible:

yann@yann-thinkpad:~$ sudo -u www-data /bin/bash
bash: /home/yann/.bashrc: Permission denied
www-data@yann-thinkpad:~$ cd /var/www  

Puis tu peux essayer de créer le répertoire à la main, en tant qu'user www-data ou apache... et tester pour voir ce qui marche pas!
Fait signe si tu as plus de questions, j'espère que ca t'aide un petit peu!


Et pourtant moi, jsuis pas du genre délicat,
Dans un coin de la musse, j'ai posé mon matelas
- Paulo Anarkao

Hors ligne

#3 Le 16/10/2018, à 11:29

Blackdruid

Re : Trouver le user qui se prend un permission denied

Salut,

Désolé, je vois ta réponse un peu tardivement.
Oui, c'est une bonne astuce de pouvoir se connecter avec le user en ligne de commande. Je n'y avais pas pensé.

Je te remercie.

Hors ligne