On Thu, 20 Apr 2006 11:15:06 +0200, Matthieu Moy :
exec("sudo /pat/vers/mon_script.sh");
ça risque de merder car il attend le mot de passe root
Bien lire la doc de sudo, et le configurer pour ne pas demander de mot de passe sur ce script.
Y a-t-il un moyen de s'assurer que seul ce script PHP peut exécuter le script shell en question ?
Pascal Hambourg
Salut,
man sudo [...]
ça fait peur... non ?
Quoi donc ? Qu'un hurluberlu ose balancer dans un forum 15 ko de page de manuel dont personne n'a rien à faire puisque tous les utilisateurs de sudo l'ont déjà sur leur système ? Oui, ça fait peur.
Salut,
man sudo
[...]
ça fait peur... non ?
Quoi donc ? Qu'un hurluberlu ose balancer dans un forum 15 ko de page de
manuel dont personne n'a rien à faire puisque tous les utilisateurs de
sudo l'ont déjà sur leur système ? Oui, ça fait peur.
Quoi donc ? Qu'un hurluberlu ose balancer dans un forum 15 ko de page de manuel dont personne n'a rien à faire puisque tous les utilisateurs de sudo l'ont déjà sur leur système ? Oui, ça fait peur.
Dans le message <news:, *Fabien LE LEZ* tapota sur f.c.o.l.configuration :
exec("sudo /pat/vers/mon_script.sh");
ça risque de merder car il attend le mot de passe root
Bien lire la doc de sudo, et le configurer pour ne pas demander de mot de passe sur ce script.
Y a-t-il un moyen de s'assurer que seul ce script PHP peut exécuter le script shell en question ?
Non, ça n'est guère possible depuis sudo.
Quand un script PHP exécute une commande, celle-ci est vu comme étant exécutée par le process apache. De plus, sudo ne vérifie que l'uid, le gid et le nom d'hôte de celui qui l'appelle, pas le process parent. Par contre, le script shell lui peut éventuellement vérifier la variable d'environnement PWD qui sera positionnée sur le répertoire du script PHP qui l'a appelé. Mais ça n'est pas suffisant pour s'assurer que c'est bien le script en question qui l'a lancé. Ou alors, il faut que le script PHP soit lancé comme un script CGI et ensuite que le script shell vérifie que le process parent est bien le script PHP en question. Il suffit, par exemple, de vérifier le contenu de l'entrée /proc/$PPID/cmdline.
-- Sébastien Monbrun aka TiChou
Dans le message <news:125f42heb2h5g0eebqbqcau0pv92dds3rn@4ax.com>,
*Fabien LE LEZ* tapota sur f.c.o.l.configuration :
exec("sudo /pat/vers/mon_script.sh");
ça risque de merder car il attend le mot de passe root
Bien lire la doc de sudo, et le configurer pour ne pas demander de mot
de passe sur ce script.
Y a-t-il un moyen de s'assurer que seul ce script PHP peut exécuter le
script shell en question ?
Non, ça n'est guère possible depuis sudo.
Quand un script PHP exécute une commande, celle-ci est vu comme étant
exécutée par le process apache.
De plus, sudo ne vérifie que l'uid, le gid et le nom d'hôte de celui qui
l'appelle, pas le process parent.
Par contre, le script shell lui peut éventuellement vérifier la variable
d'environnement PWD qui sera positionnée sur le répertoire du script PHP qui
l'a appelé. Mais ça n'est pas suffisant pour s'assurer que c'est bien le
script en question qui l'a lancé.
Ou alors, il faut que le script PHP soit lancé comme un script CGI et
ensuite que le script shell vérifie que le process parent est bien le script
PHP en question. Il suffit, par exemple, de vérifier le contenu de l'entrée
/proc/$PPID/cmdline.
Dans le message <news:, *Fabien LE LEZ* tapota sur f.c.o.l.configuration :
exec("sudo /pat/vers/mon_script.sh");
ça risque de merder car il attend le mot de passe root
Bien lire la doc de sudo, et le configurer pour ne pas demander de mot de passe sur ce script.
Y a-t-il un moyen de s'assurer que seul ce script PHP peut exécuter le script shell en question ?
Non, ça n'est guère possible depuis sudo.
Quand un script PHP exécute une commande, celle-ci est vu comme étant exécutée par le process apache. De plus, sudo ne vérifie que l'uid, le gid et le nom d'hôte de celui qui l'appelle, pas le process parent. Par contre, le script shell lui peut éventuellement vérifier la variable d'environnement PWD qui sera positionnée sur le répertoire du script PHP qui l'a appelé. Mais ça n'est pas suffisant pour s'assurer que c'est bien le script en question qui l'a lancé. Ou alors, il faut que le script PHP soit lancé comme un script CGI et ensuite que le script shell vérifie que le process parent est bien le script PHP en question. Il suffit, par exemple, de vérifier le contenu de l'entrée /proc/$PPID/cmdline.
-- Sébastien Monbrun aka TiChou
noone
Ou alors vous le faites exprès ?
non je voudrais éviter la lecture de 50 pages de man juste pour trouver une pauvre ligne de commande...
Si ici certains l'ont déjà fait (lancer un script shell en tant que root depuis une interface web sans demande de mot de passe) et bien qu'ils le disent...
Les réponses du genre RTFM... je les laisse... parce que ça n'est pas en répondant ainsi qu'on aide beaucoup...
Il m'arrive de poster régulièrement ici depuis un certain nombre d'années et "RTFM"c'est bien le genre de réponse que j'évite de jeter à la figure des gens
Ou alors vous le faites exprès ?
non je voudrais éviter la lecture de 50 pages de man juste pour trouver
une pauvre ligne de commande...
Si ici certains l'ont déjà fait (lancer un script shell en tant que root
depuis une interface web sans demande de mot de passe) et bien qu'ils
le disent...
Les réponses du genre RTFM... je les laisse... parce que ça n'est pas en
répondant ainsi qu'on aide beaucoup...
Il m'arrive de poster régulièrement ici depuis un certain nombre
d'années et "RTFM"c'est bien le genre de réponse que j'évite de jeter à
la figure des gens
non je voudrais éviter la lecture de 50 pages de man juste pour trouver une pauvre ligne de commande...
Si ici certains l'ont déjà fait (lancer un script shell en tant que root depuis une interface web sans demande de mot de passe) et bien qu'ils le disent...
Les réponses du genre RTFM... je les laisse... parce que ça n'est pas en répondant ainsi qu'on aide beaucoup...
Il m'arrive de poster régulièrement ici depuis un certain nombre d'années et "RTFM"c'est bien le genre de réponse que j'évite de jeter à la figure des gens
Sébastien Monbrun aka TiChou
Dans le message <news:4447ae58$0$6643$, ** tapota sur f.c.o.l.configuration :
Qu'un hurluberlu
Est-ce que je vous insulte ?
Hurluberlu n'est pas une insulte ou alors vous êtes particulièrement susceptible.
Par contre, le fait d'envoyer inutilement et maladroitement les 15ko du manuel de sudo ici même peut être perçu comme une offense aux yeux de ceux qui vous lisent et vous aident, ou être vu comme une insulte au bon sens. Le fait aussi de ne pas lire ce qui vous a été recommandé peut être aussi perçu comme insolent et offensant.
Comprenez-vous mieux maintenant ?
-- Sébastien Monbrun aka TiChou
Dans le message <news:4447ae58$0$6643$8fcfb975@news.wanadoo.fr>,
*noone@nowhere.undef* tapota sur f.c.o.l.configuration :
Qu'un hurluberlu
Est-ce que je vous insulte ?
Hurluberlu n'est pas une insulte ou alors vous êtes particulièrement
susceptible.
Par contre, le fait d'envoyer inutilement et maladroitement les 15ko du
manuel de sudo ici même peut être perçu comme une offense aux yeux de ceux
qui vous lisent et vous aident, ou être vu comme une insulte au bon sens. Le
fait aussi de ne pas lire ce qui vous a été recommandé peut être aussi perçu
comme insolent et offensant.
Dans le message <news:4447ae58$0$6643$, ** tapota sur f.c.o.l.configuration :
Qu'un hurluberlu
Est-ce que je vous insulte ?
Hurluberlu n'est pas une insulte ou alors vous êtes particulièrement susceptible.
Par contre, le fait d'envoyer inutilement et maladroitement les 15ko du manuel de sudo ici même peut être perçu comme une offense aux yeux de ceux qui vous lisent et vous aident, ou être vu comme une insulte au bon sens. Le fait aussi de ne pas lire ce qui vous a été recommandé peut être aussi perçu comme insolent et offensant.
Comprenez-vous mieux maintenant ?
-- Sébastien Monbrun aka TiChou
lhabert
Sébastien Monbrun aka TiChou :
Ou alors, il faut que le script PHP soit lancé comme un script CGI et ensuite que le script shell vérifie que le process parent est bien le script PHP en question. Il suffit, par exemple, de vérifier le contenu de l'entrée /proc/$PPID/cmdline.
Euh, un process peut modifier son contenu, donc ça ne vaut rien.
Sébastien Monbrun aka TiChou :
Ou alors, il faut que le script PHP soit lancé comme un script CGI et
ensuite que le script shell vérifie que le process parent est bien le script
PHP en question. Il suffit, par exemple, de vérifier le contenu de l'entrée
/proc/$PPID/cmdline.
Euh, un process peut modifier son contenu, donc ça ne vaut rien.
Ou alors, il faut que le script PHP soit lancé comme un script CGI et ensuite que le script shell vérifie que le process parent est bien le script PHP en question. Il suffit, par exemple, de vérifier le contenu de l'entrée /proc/$PPID/cmdline.
Euh, un process peut modifier son contenu, donc ça ne vaut rien.
lhabert
Fabien LE LEZ :
Y a-t-il un moyen de s'assurer que seul ce script PHP peut exécuter le script shell en question ?
Non, mais tu peux restreindre l'autorisation aux process tournant au nom d'un certain utilisateur. De toutes manières, ça n'apporterait pratiquement rien de plus en terme de sécurité.
Fabien LE LEZ :
Y a-t-il un moyen de s'assurer que seul ce script PHP peut exécuter le
script shell en question ?
Non, mais tu peux restreindre l'autorisation aux process tournant au nom
d'un certain utilisateur. De toutes manières, ça n'apporterait pratiquement
rien de plus en terme de sécurité.
Y a-t-il un moyen de s'assurer que seul ce script PHP peut exécuter le script shell en question ?
Non, mais tu peux restreindre l'autorisation aux process tournant au nom d'un certain utilisateur. De toutes manières, ça n'apporterait pratiquement rien de plus en terme de sécurité.
Sébastien Monbrun aka TiChou
Dans le message <news:4447b0ec$0$20157$, ** tapota sur f.c.o.l.configuration et f.m.engueulades :
Si ici certains l'ont déjà fait (lancer un script shell en tant que root depuis une interface web sans demande de mot de passe) et bien qu'ils le disent...
Je l'ai fait, je le fais toujours et je le referais prochainement.
Les réponses du genre RTFM... je les laisse... parce que ça n'est pas en répondant ainsi qu'on aide beaucoup...
Pourtant, l'aide la plus efficace c'est celle qui vient de sois-même et pour cela il suffit de lire cette p* de documentation.
Il m'arrive de poster régulièrement ici depuis un certain nombre d'années et "RTFM"c'est bien le genre de réponse que j'évite de jeter à la figure des gens
Pourtant dans la plupart des cas c'est la meilleure des réponses qu'on puisse leur donner. Donner une réponse toute faite n'aide en rien. C'est nul, naze, inefficace, idiot, ridicule, tout ce que vous voulez. Par contre, guider la personne à trouver la bonne réponse est la meilleure des réponses que l'on puisse faire. Maintenant, si vous souhaitez avoir des réponses et des solutions toutes faites, alors payez moi et je me ferais un plaisir à être « efficace » selon vous.
-- Sébastien Monbrun aka TiChou
Dans le message <news:4447b0ec$0$20157$8fcfb975@news.wanadoo.fr>,
*noone@nowhere.undef* tapota sur f.c.o.l.configuration et f.m.engueulades :
Si ici certains l'ont déjà fait (lancer un script shell en tant que root
depuis une interface web sans demande de mot de passe) et bien qu'ils
le disent...
Je l'ai fait, je le fais toujours et je le referais prochainement.
Les réponses du genre RTFM... je les laisse... parce que ça n'est pas en
répondant ainsi qu'on aide beaucoup...
Pourtant, l'aide la plus efficace c'est celle qui vient de sois-même et pour
cela il suffit de lire cette p* de documentation.
Il m'arrive de poster régulièrement ici depuis un certain nombre
d'années et "RTFM"c'est bien le genre de réponse que j'évite de jeter à
la figure des gens
Pourtant dans la plupart des cas c'est la meilleure des réponses qu'on
puisse leur donner. Donner une réponse toute faite n'aide en rien. C'est
nul, naze, inefficace, idiot, ridicule, tout ce que vous voulez. Par contre,
guider la personne à trouver la bonne réponse est la meilleure des réponses
que l'on puisse faire.
Maintenant, si vous souhaitez avoir des réponses et des solutions toutes
faites, alors payez moi et je me ferais un plaisir à être « efficace » selon
vous.
Dans le message <news:4447b0ec$0$20157$, ** tapota sur f.c.o.l.configuration et f.m.engueulades :
Si ici certains l'ont déjà fait (lancer un script shell en tant que root depuis une interface web sans demande de mot de passe) et bien qu'ils le disent...
Je l'ai fait, je le fais toujours et je le referais prochainement.
Les réponses du genre RTFM... je les laisse... parce que ça n'est pas en répondant ainsi qu'on aide beaucoup...
Pourtant, l'aide la plus efficace c'est celle qui vient de sois-même et pour cela il suffit de lire cette p* de documentation.
Il m'arrive de poster régulièrement ici depuis un certain nombre d'années et "RTFM"c'est bien le genre de réponse que j'évite de jeter à la figure des gens
Pourtant dans la plupart des cas c'est la meilleure des réponses qu'on puisse leur donner. Donner une réponse toute faite n'aide en rien. C'est nul, naze, inefficace, idiot, ridicule, tout ce que vous voulez. Par contre, guider la personne à trouver la bonne réponse est la meilleure des réponses que l'on puisse faire. Maintenant, si vous souhaitez avoir des réponses et des solutions toutes faites, alors payez moi et je me ferais un plaisir à être « efficace » selon vous.