IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Droits script bash


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Billets dans le blog
    1
    Par défaut Droits script bash
    Bonjour,
    J'ai une page php sur mon raspberry qui lance un script avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	`/home/pi/Documents/gest_reseau/bloque.sh $ip $etat`;
    ce script travaille sur l'iptable root :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /sbin/iptables -I OUTPUT -d $1 -j DROP
    Le script devant donc avoir les droits root, j'ai fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chown root:root bloque.sh
    chmod +s  bloque.sh
    J'ai cependant l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables v1.4.21: can't initialize iptables table `filter': Permission denied (you must be root)
    et effectivement, le code suivant dans le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "whoami" >> toto.txt
    		whoami >> toto.txt
    		echo "who am i" >>  toto.txt
    		who am i >>  toto.txt
    cat toto.txt me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    whoami
    www-data
    who am i
    que je ne comprends pas. Que dois-je faire ?
    Merci d'avance

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Le suid de root affecté sur un script n'est pas pris en compte sous linux car cette approche présente des failles de sécurité.

    La méthode la plus simple pour contourner ce problème consiste à utiliser sudo.

  3. #3
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Billets dans le blog
    1
    Par défaut
    bonjour et merci pour la réponse.
    sudo dans un script me demande le mot de passe administrateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo: no tty present and no askpass program specified
    De quel programme s'agit-il ?

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour,

    php(www-data) n'a pas les droits root ! il faut donc donner les bons droits à www-data dans sudoers avec ce script shell (ou la commande iptables)

  5. #5
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Billets dans le blog
    1
    Par défaut
    ok merci

  6. #6
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    Citation Envoyé par jlliagre Voir le message
    Le suid de root affecté sur un script n'est pas pris en compte sous linux car cette approche présente des failles de sécurité.
    accessoirement c'est aussi parcequ'un script n'est pas "exécuté" (droit x) mais "lu" (droit r) par l’interpréteur, pour que ça ait une chance de fonctionner il faudrait que ce soit l'interpréteur qui ait des droits root de manière à pouvoir déléguer les privilèges lors de l'exécution du script, c'est valable pour php, perl, bash etc. donc

  7. #7
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Ce n'est pas une impossibilité intrinsèque liée à la méthode car ce n'est pas le shell mais bien le noyau qui ouvre en premier le shell script lors de l'exec.

    Il serait tout à fait possible pour le noyau de lancer l'interpréteur avec le seuid bit de root si les développeurs de Linux et du shell utilisé décidaient de supporter cette fonctionnalité, mais ce n'est pas leur choix. D'autres combinaisons OS/shell ne présentent pas cette limitation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/02/2012, 14h04
  2. Servet lance script bash avec droits insuffisants
    Par teto dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 07/09/2010, 13h20
  3. Requête POST dans un script bash
    Par desperado dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 22h38
  4. Réponses: 8
    Dernier message: 27/07/2006, 09h40
  5. Problème script Bash
    Par Sphost dans le forum Linux
    Réponses: 10
    Dernier message: 26/07/2005, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo