# Cmd AWK dans du CGI

**URL:** <https://www.debian-fr.org/t/cmd-awk-dans-du-cgi/61741>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 8:08 UTC](https://www.debian-fr.org/t/cmd-awk-dans-du-cgi/61741 "2016-02-21T20:08:54Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rapid](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/dc4da7/32.png) [@Rapid](https://www.debian-fr.org/u/Rapid)\
**Post date:** [Février 21, 2016, 8:08 UTC](https://www.debian-fr.org/t/cmd-awk-dans-du-cgi/61741/1 "2016-02-21T20:08:54Z")

</div>

Bonjour,

Je me suis tourner le cerveau dans tous les sens possibles.. ![:017](https://www.debian-fr.org/uploads/default/original/1X/7bbea83f89515ab7c7a738dddb86c4d4f140bd13.gif "reflechit") à bout de souffle je vous demande de me venir en aide 🙂

J’ai une commande awk dans un script cgi :

`VISIO=$(param visio)
awk -F ";" -v VISIO=$VISIO ' $14 ~ VISIO {print $14";"$26";"$35} ' baseVisioV2.csv > liste.txt`  
Le problème est que cette commande me sort aucun résultat (liste.txt est donc vide) ![:think:](https://www.debian-fr.org/uploads/default/original/1X/98cae0704aea0201d04f151843e80a3ecd391eca.gif "Think")  
J’ai donc vérifié si je récupéré bien le paramètre à enregistré dans la variable

```auto
VISIO=$(param visio)
```

avec un

```auto
echo $VISIO
```

Et ce echo me sort bien le bon contenue..  
mais le plus fort c’est que, quand je tape la même cmd dans un terminal :

`VISIO="TOTO"
awk -F ";" -v VISIO=$VISIO ' $14 ~ VISIO {print $14";"$26";"$35} ' baseVisioV2.csv > liste.txt`

Et bien ça marche.. la commande me sort le résultat souhaité…  
Alors pourquoi cette commande ne marche pas dans fichier .cgi ?

HELP ME PLEASE ![:pray:](https://www.debian-fr.org/uploads/default/original/1X/2abd93f5bdd4258c1e4775cddd8a93bd8304edc5.gif "Pray")

---

<div class="post-metadata">

**Author:** ![agentsteel](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@agentsteel](https://www.debian-fr.org/u/agentsteel)\
**Post date:** [Février 21, 2016, 8:08 UTC](https://www.debian-fr.org/t/cmd-awk-dans-du-cgi/61741/2 "2016-02-21T20:08:56Z")

</div>

Ton fichier liste.txt est-il bien accessible en écriture par le cgi? (cgi lancé par le serveur http, donc avec l’utilisateur [mono]www-data[/mono] en principe)

Aussi, as-tu bien le bon “bang” en première ligne dans ton cgi (un script shell donc)?  
[mono]#/bin/bash[/mono]

Aussi, regarde les logs d’erreur de ton serveur web (Apache je présume?) pour un indice éventuel.

---

<div class="post-metadata">

**Author:** ![Rapid](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/dc4da7/32.png) [@Rapid](https://www.debian-fr.org/u/Rapid)\
**Post date:** [Février 21, 2016, 8:08 UTC](https://www.debian-fr.org/t/cmd-awk-dans-du-cgi/61741/3 "2016-02-21T20:08:56Z")

</div>

Merci pour ta réponse agentsteel

Et bien vue ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")

Car grâce à la consultation des logs du apache je me suis rendu compte que le problème vient effectivement d’un soucis de droit quant à l’utilisation des fichiers que mon script génère.

Visite des logs est l’une des premières analyse à faire en cas de blocage et pourtant je n’y ai pas penser.

Donc solution apporté :

Mettre l’utilisateur d’apache www-data propriétaire du dossier où ce trouve les scripts cgi

```auto
chown -R www-data cgi-bin/ 
```

Et hop tout roule !

Merci pour ta lumière ! 😃

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 8:08 UTC](https://www.debian-fr.org/t/cmd-awk-dans-du-cgi/61741/4 "2016-02-21T20:08:57Z")

</div>

Coche verte ?

---

<div class="post-metadata">

**Author:** ![agentsteel](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/97f17d/32.png) [@agentsteel](https://www.debian-fr.org/u/agentsteel)\
**Post date:** [Février 21, 2016, 8:08 UTC](https://www.debian-fr.org/t/cmd-awk-dans-du-cgi/61741/5 "2016-02-21T20:08:58Z")

</div>

> [@Rapid@](#):
>
> Donc solution apporté :
> 
> Mettre l’utilisateur d’apache www-data propriétaire du dossier où ce trouve les scripts cgi
> 
> ```auto
> chown -R www-data cgi-bin/ 
> ```

attention ce n’est pas forcément la bonne solution 😛

Potentiellement un problème de sécurité si l’utilisateur www-data modifie tes scripts cgi dans le dossier cgi-bin.

Il vaudrait peut-être mieux créer un dossier spécifique dans lequel tu stockera ton fichier résultat, et lui accorder les droit en écriture pour www-data.

---

<div class="post-metadata">

**Author:** ![Rapid](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/dc4da7/32.png) [@Rapid](https://www.debian-fr.org/u/Rapid)\
**Post date:** [Février 21, 2016, 8:08 UTC](https://www.debian-fr.org/t/cmd-awk-dans-du-cgi/61741/6 "2016-02-21T20:08:59Z")

</div>

Tout à fait d’accord et je vais me rabattre sur cette solution !

> [@](#):
>
> Il vaudrait peut-être mieux créer un dossier spécifique dans lequel tu stockera ton fichier résultat, et lui accorder les droit en écriture pour www-data.

Merci bcp pour ton aide !
