Accorder permission root a www-data
Résolu
helmii
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Chmod www-data
- App data - Guide
- Www waptrik.com - Télécharger - Divers TV & Vidéo
- Windows data recovery - Télécharger - Récupération de données
- Get data back - Télécharger - Récupération de données
- Www.192.168.1.1 - Guide
7 réponses
Bonjour,
Il n'est pas nécessaire de donner un accès root à www-data, il suffit que www-data puisse écrire dans les bons fichiers uniquement.
Deux manières :
- Indiquer www-data comme propriétaire du fichier avec la commande chown
- Indiquer les fichiers et/ou dossier comme appartenant au groupe www-data (chown) et donner la permission d'écriture au groupe (chmod g+w)
Il n'est pas nécessaire de donner un accès root à www-data, il suffit que www-data puisse écrire dans les bons fichiers uniquement.
Deux manières :
- Indiquer www-data comme propriétaire du fichier avec la commande chown
- Indiquer les fichiers et/ou dossier comme appartenant au groupe www-data (chown) et donner la permission d'écriture au groupe (chmod g+w)
merci pour ta reponse :)
je vois que ce n 'est pas necessaire de donner un accès root a www-data d'après ce que t as dit mais c'est faisable je pense nn?ce que je comprend pas c'est ou est la faute dans mon code :/
je vois que ce n 'est pas necessaire de donner un accès root a www-data d'après ce que t as dit mais c'est faisable je pense nn?ce que je comprend pas c'est ou est la faute dans mon code :/
Désolé, j'ai juste rectifié ton titre sans même porter attention à ton problème réel :)
D'ailleurs, ce que j'ai dit plus haut est faux. Avec l'erreur Insecure $ENV{PATH}, Perl indique soit que ton PATH n'est pas initialisé, soit qu'un des dossiers du PATH n'est pas protégé en écriture (d'où l'idée qu'il ne faut pas suivre ce que je décrits plus haut).
Tu peux essayer :
$ENV{PATH} = "/dossier/ou/se/trouve/hostapd/"
exec 'hostapd', '/etc/hostapd-1.0/hostapd/hostapd.conf';
Je ne suis pas expert PERL, j'ai juste suivi la doc : http://www.washington.edu/perl5man/pod/perlsec.html
D'ailleurs, ce que j'ai dit plus haut est faux. Avec l'erreur Insecure $ENV{PATH}, Perl indique soit que ton PATH n'est pas initialisé, soit qu'un des dossiers du PATH n'est pas protégé en écriture (d'où l'idée qu'il ne faut pas suivre ce que je décrits plus haut).
Tu peux essayer :
$ENV{PATH} = "/dossier/ou/se/trouve/hostapd/"
exec 'hostapd', '/etc/hostapd-1.0/hostapd/hostapd.conf';
Je ne suis pas expert PERL, j'ai juste suivi la doc : http://www.washington.edu/perl5man/pod/perlsec.html
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut :)) merci beacoup pour ton aide sa a marché!!je voulais savoir est t-il de meme pour executer la commande:
sudo ifdown wlan1
si oui quel est le chemin du program ifdown j ai cherché mais en vain!!!merci pour l'aide :))
sudo ifdown wlan1
si oui quel est le chemin du program ifdown j ai cherché mais en vain!!!merci pour l'aide :))
Salut,
Tu peux te servir de la commande whereis pour trouver un exécutable
Tu peux te servir de la commande whereis pour trouver un exécutable
$ whereis ifdown ifdown: /sbin/ifdown /usr/share/man/man8/ifdown.8.gz
pour la commande de hostapd j ai saisi les lignes suivantes :
$ENV{PATH} = "/etc/hostapd-1.0/hostapd/";
exec 'hostapd', '/etc/hostapd-1.0/hostapd/hostapd.conf';
et sa marche très bien.
Pour la commande ifdown j ai saisi:
$ENV{PATH} = "/sbin/";
exec 'ifdown', 'wlan1';
Mais sa ne marche pas :/
$ENV{PATH} = "/etc/hostapd-1.0/hostapd/";
exec 'hostapd', '/etc/hostapd-1.0/hostapd/hostapd.conf';
et sa marche très bien.
Pour la commande ifdown j ai saisi:
$ENV{PATH} = "/sbin/";
exec 'ifdown', 'wlan1';
Mais sa ne marche pas :/
Salut helmii,
En faisant :
Tu écrases la valeur de la variable d'environnement "PATH", dont tu perds le contenu, alors que les emplacements énumérés dans cette variable sont nécessaires au bon fonctionnement du système (ce qui explique sans doutes que ifdown ne fonctionne pas).
Dans la variable PATH, les répertoires sont séparés par des ":". Si tu dois ajouter temporairement un répertoire à la variable PATH, tu peux le faire en ajoutant une nouvelle entrée séparée par ":", précédant le contenu déjà existant, ou ajoutée à la suite. Par exemple, pour l'ajouter à la suite, tu fais comme cela :
Ton PATH devrait déjà contenir /sbin/, sous Linux, et il ne devrait pas être nécessaire de l'ajouter au PATH.
Pour le vérifier, fais cela dans ton terminal:
Dal
En faisant :
$ENV{PATH} = "/etc/hostapd-1.0/hostapd/";
Tu écrases la valeur de la variable d'environnement "PATH", dont tu perds le contenu, alors que les emplacements énumérés dans cette variable sont nécessaires au bon fonctionnement du système (ce qui explique sans doutes que ifdown ne fonctionne pas).
Dans la variable PATH, les répertoires sont séparés par des ":". Si tu dois ajouter temporairement un répertoire à la variable PATH, tu peux le faire en ajoutant une nouvelle entrée séparée par ":", précédant le contenu déjà existant, ou ajoutée à la suite. Par exemple, pour l'ajouter à la suite, tu fais comme cela :
$ENV{PATH} .= ":/etc/hostapd-1.0/hostapd/";
Ton PATH devrait déjà contenir /sbin/, sous Linux, et il ne devrait pas être nécessaire de l'ajouter au PATH.
Pour le vérifier, fais cela dans ton terminal:
me@mymachine:~$ echo $PATH
Dal
salut Dal,
t'as raison a propos sbin il existe deja dans $PATH.
quand j ai mis $ENV{PATH} .= ":/etc/hostapd-1.0/hostapd/";
comme tu me l'as dit meme le hostapd ne veut plus fonctionner!! :/ je remet
$ENV{PATH} = "/etc/hostapd-1.0/hostapd/"; il fonctionne très bien et reste le problème de :
exec 'ifdown' , 'wlan1';
exec 'ifup' , 'wlan1';
t'as raison a propos sbin il existe deja dans $PATH.
quand j ai mis $ENV{PATH} .= ":/etc/hostapd-1.0/hostapd/";
comme tu me l'as dit meme le hostapd ne veut plus fonctionner!! :/ je remet
$ENV{PATH} = "/etc/hostapd-1.0/hostapd/"; il fonctionne très bien et reste le problème de :
exec 'ifdown' , 'wlan1';
exec 'ifup' , 'wlan1';
Je ne comprend pas bien pourquoi veux changer la variable d'environnement juste pour exécuter "hostapd". ne peux-tu pas simplement le lancer en indiquant le chemin de l'exécutable dans l'appel à exec lui-même.
Par ailleurs, dans ton message d'origine tu dis que tu utilises "system", puis subitement, tu parles après de "exec". Tu dois avoir tes raisons pour utiliser "exec", qui n'est absolument pas équivalent de "system" :
https://perldoc.perl.org/functions/exec
The exec function executes a system command and never returns; use system instead of exec if you want it to return.
Enfin, si tu dois vraiment modifier le PATH pour une raison qui m'échappe, et que tu as des problèmes d'exécution en postfixant ta modification, essaye en la préfixant :
Dal
exec '/etc/hostapd-1.0/hostapd/hostapd', '/etc/hostapd-1.0/hostapd/hostapd.conf';
Par ailleurs, dans ton message d'origine tu dis que tu utilises "system", puis subitement, tu parles après de "exec". Tu dois avoir tes raisons pour utiliser "exec", qui n'est absolument pas équivalent de "system" :
https://perldoc.perl.org/functions/exec
The exec function executes a system command and never returns; use system instead of exec if you want it to return.
Enfin, si tu dois vraiment modifier le PATH pour une raison qui m'échappe, et que tu as des problèmes d'exécution en postfixant ta modification, essaye en la préfixant :
$ENV{PATH} = "/etc/hostapd-1.0/hostapd/:" . $ENV{PATH};
Dal