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 :

[shell] exécuter script sans les droits de lecture


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Points : 259
    Points
    259
    Par défaut [shell] exécuter script sans les droits de lecture
    Bonjour,

    j'ai un script sur lequel je met les droits en --x--x--x
    Et lorsque je tente de le lancer j'ai un "permission denied"

    c'est normal ça? Je ne trouve aucune réponse claire nulle part....

    merci pour tout éclaircissement

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    les utilisateurs n'en ont pas toujours conscience mais chaque fois qu'on lance un programme on en fait en réalité une copie dans la mémoire donc le fichier doit être lisible pour être copié...donc R & X.

  3. #3
    Membre habitué
    Homme Profil pro
    consultant ETL
    Inscrit en
    Septembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : consultant ETL
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2008
    Messages : 97
    Points : 185
    Points
    185
    Par défaut droits
    Le shell est un interpréteur de commandes; Donc si tu empêche la lecture, il ne peut pas lire et donc pas interpréter les commandes. Le probleme n'est pas le meme pour un binaire, il me semble.

    J'avais fait cette solution de contournement tordue :
    Supposons que le shell appartient au user toto et que titi doit pouvoir l exécuter sans pouvoir lire le code.
    je crée le script monscript.sh avec le user toto avec les droits RWX pour toto. Les droits pour titi on s'en fiche, donc j avais probablement mis les droits rwx------
    Je crée un programme en langage C monprog.c qui fait juste un exec du shell monscript.sh, que je compile en "monprog".
    Je lui mets des droits afin que titi puisse l executer mais je met egalement un droit supplementaire qu on appelle le 'set uid bit' : Le programme appartenant à toto et ayant le setuid bit s'exécute avec les permissions de toto, et donc aura le droit d executer le shell.
    conclusion, Titi aura exécuté le contenu du shell de toto sans pouvoir le lire... mais quel bordel...

    Je te laisse le soin de cherche sur le net comment on positionne le set uid bit car je ne m'en souviens plus.

    bon courage.

  4. #4
    Membre actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Points : 259
    Points
    259
    Par défaut
    ok c'est bien ce que je pensais. Mais bon je voulais avoir confirmation car mon client me tanne pour que je mette ses scripts en --x: avant de lui répondre que c'est impossible je préferais avoir un avis ici

    résolu

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 043
    Points
    31 043
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Citation Envoyé par frp31 Voir le message
    les utilisateurs n'en ont pas tjrs conscience mais chaque fois qu'on lance un programme on en fait en réalité une copie dans la mémoire donc le fichier doit être lisible pour être copié...donc R & X.
    Uniquement pour les scripts car les exécutables, eux, s'exécutent directement sans être lus (bon peut-être qu'ils sont lus par le noyau mais absolument pas par l'utilisateur) donc pour les exécutables, le x suffit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    moi@debian:~$ /usr/bin/id && /bin/ls -l /bin/ls /usr/bin/id
    uid=2001(moi) gid=2000(users) groupes=2000(users),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),109(bluetooth),115(scanner)
    ---x--x--x 1 root root 96400 21 avril  2012 /bin/ls
    ---x--x--x 1 root root 26708 21 avril  2012 /usr/bin/id
    moi@debian:~$

    Citation Envoyé par qqcvd Voir le message
    Le probleme n'est pas le meme pour un binaire, il me semble.
    Exact. Le x suffit

    Citation Envoyé par qqcvd Voir le message
    J'avais fait cette solution de contournement tordue :
    Supposons que le shell appartient au user toto et que titi doit pouvoir l exécuter sans pouvoir lire le code.
    je crée le script monscript.sh avec le user toto avec les droits RWX pour toto. Les droits pour titi on s'en fiche, donc j avais probablement mis les droits rwx------
    Je crée un programme en langage C monprog.c qui fait juste un exec du shell monscript.sh, que je compile en "monprog".
    Je lui mets des droits afin que titi puisse l executer mais je met egalement un droit supplementaire qu on appelle le 'set uid bit' : Le programme appartenant à toto et ayant le setuid bit s'exécute avec les permissions de toto, et donc aura le droit d executer le shell.
    Oui ça marche. Toutefois un utilisateur n'ayant aucun droit, il est absurde de parler des droits de titi...

    Citation Envoyé par qqcvd Voir le message
    Je te laisse le soin de cherche sur le net comment on positionne le set uid bit car je ne m'en souviens plus.
    Le chmod octal a 4 chiffres. Le premier étant à 0 par défaut n'est généralement pas nécessaire c'est pourquoi on voit comunément 3 chiffres.
    Mais si on positionne ce premier a une valeur différente de 0, on pourra placer
    1 => le sticky bit
    2 => le setgid
    4 => le setuid
    Et tout autre chiffre sera vu comme la combinaison de ces 3 premiers

    Ou bien on rajoute les droits "sst" dans le chmod littéral => chmod u+s ...

    Citation Envoyé par tiresias54 Voir le message
    ok c'est bien ce que je pensais. Mais bon je voulais avoir confirmation car mon client me tanne pour que je mette ses scripts en --x: avant de lui répondre que c'est impossible je préferais avoir un avis ici

    résolu
    A la limite, tu peux même mettre tes scripts en r-- ils pourront quand-même être exécutés. Faudra juste spécifier "sh nom_du_script" pour indiquer à Unix qu'il doit utiliser l'exécutable sh pour traiter le script.

    Mais en revanche, le r reste impératif et c'est sans appel...

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

Discussions similaires

  1. Exécuter une proc xp_ sans les droits sysadmin
    Par Christianbt dans le forum Administration
    Réponses: 4
    Dernier message: 16/03/2012, 16h43
  2. [SHELL] exécuter script php distant
    Par tuxout dans le forum Linux
    Réponses: 1
    Dernier message: 17/01/2008, 17h12
  3. [Système] Exécuter script sans afficher page
    Par philippe281281 dans le forum Langage
    Réponses: 18
    Dernier message: 08/08/2006, 19h14
  4. Chown par sudo sur fichiers sans les droits
    Par tilleul dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 13/06/2006, 14h23

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