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

Langage PHP Discussion :

[Sécurité] alternative à chmod


Sujet :

Langage PHP

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 30
    Par défaut [Sécurité] alternative à chmod
    Je souhaite copier les fichiers d'un répertoire à un autre.
    Tout fonctionne bien sous windows mais sous unix, ça plante à cause du droit du serveur apache.
    ex :
    1 fichier dans le répertoire toto vers le repertoire tata.

    J'ai changé manuellement le chmod des répertoires, mais quand je veux copier le fichier cela ne fonctionne pas, car le fichier lui-même n'a pas tous les droits.

    Aujourd'hui, quelle est l'alternative au chmod en php quand on veut l'utiliser de manière dynamique en lançant un script php ?

    J'ai lu que ftp_chmod pouvez le remplacer ? pas terrible niveau sécurité ?

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    le bit s est ton amis.

    dans ton dossier tu fais un lorsque tu vas créer un fichier dans ce dossier il va conserver les droits du dossier
    donc si tu as mis rw-rw-r-- avec le bit s tu vas avoir rwsrwsr-s
    tout les fichier créés auront ces mêmes droit.

    il te faut li le man de chmod et du bit s

    Attention tout de même
    sur une shellscript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chmod u+rwxS monscript.sh
    ceci modifie le comportement à l'exécution.
    si tu donne le droit à tous d'écxécuter ce script il sera toujours executer par le propriétaire qui que ce soit qui l'ai lancé.

    bref tu fais un script qui fait cd /; rm -Rf * avec les droits
    rwSr-xr-x et le owner à root
    et toute personne qui peut lancer une commande (même nobody) executera se script en tant que root.

    il faut donc être très prudant.

    A+JYT

  3. #3
    Membre éclairé Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Par défaut
    :

    Je comprend pas bien la question de départ ...

    Est que tu arrives à copier le fichier mais il ne s'execute pas ou est que tu n'arrives pas du tout à copier le fichier ??

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 30
    Par défaut
    Ca n'est pas dans l'exécution du script que cela pose problème. C'est lors de la duplication de mon répertoire vers un autre grâce à une fonction.
    Le fichier en place sur le répertoire destinataire, n'est pas écraser par celui du répertoire source, car je n'arrive pas à modifier les droits de manière dynamique (avec chmod en php) sur ce fichier ?
    Comment puis-je m'en sortir ?

    avec un ftp_chmod ? ou autre solution ?

    Qu'est ce que le s bit ?

  5. #5
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    Citation Envoyé par arnoweb
    Qu'est ce que le s bit ?
    tout est ici :
    http://sluce.developpez.com/acls/#L2.3

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 30
    Par défaut
    ok.
    Mais cela ne répond pas à ma question.
    Le fichier toto, je veux le copier dans le repertoire titi, à la place de toto.
    Le problème, c'est que le toto dans le répertoire titi existe déjà et que je ne peux pas modifier les droits en écriture et ceci même à la main. Cela doit venir de la configuration du serveur dédié avec lequel je travaille.

    Faut-il faire une modif de configuration du serveur d'hébergement, pour pouvoir changer les droits sur les fichiers ?

  7. #7
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    est ce que le fichier toto que tu veux ecraser t'appartient?? ou alors à root??
    Pour le savoir, fais un ls -l dans le répertoire qui le contient.

    Peut etre n'as tu tous simplement pas les droits en ecriture sur ce fichier.

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 30
    Par défaut
    C'est évident que je n'ai pas les droits en écriture sur le fichier toto. Quand j'essaye de les changer via Filezilla, il me remet le fichier au chmod 644.
    Ca doit être une sécurité sur mon serveur dédié.
    Mais je ne sais pas où configurer pour effectuer ce changement ?
    De plus, il reste le problème : j'effectue cette copie dynamiquement, et la fonction chmod de php ne fonctionne pas.

    En clair :
    toto.php (fichier à copier)
    titi/toto (fichier existant déjà dans le répertoire titi) avec droits : 644
    copie de toto.php vers titi/toto.php pour écraser. ==> INTERDIT car pas les droits d'écriture.
    Non possibilité de changer les droits pour pouvoir l'écraser et même après cela, le fichier aura pas défaut le chmod 644 et non 777 car je ne peux pas utiliser la fonction chmod en php.

    Que faire ?

  9. #9
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    il est normal que tu ne puisse pas modifié les droits du fichier si il ne t'appartient pas (heuresement).

    Qu'en est il des droits du répertoire?

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 30
    Par défaut
    Alors, je suis allé un peu plus loin.
    Faut-il modifier les droits sur les répertoires et même ceux depuis la racine.
    ex : www/test/titi/toto.php

    Est-ce que chaque repertoire doit être en 777 pour pouvoir faire des copie, ecrasement de fichier ?

    Sinon, j'ai vu que j'étais en "users" sur le repertoire titi et non en "root". Cela a-il une incidence ?

    J'ai trouvé une solution de secours, mais je doute de sa pertinence :
    j'ai tout mis en 777 à partir du repertoire racine et j'ai appliquer ce changement aux fichiers de manière récursive ? niveau sécurité c'est pas trop ça ?

    Est-ce que 755 ne suffit pas ?

  11. #11
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    OULALA 777 pour tous le répertoire de ton site signifie que n'importe qui peut modifier (supprimer) les fichiers.

    Je te conseil de te renseigner sur les droit des fichiers unix.

    Peut être pourrais tu tous créer ton propre répertoire et y mettre tes fichiers.
    alors les droit suivant suffirons :

    744 pour les fichiers
    755 pour les répertoires.

    tu sera alors le seul à pouvoir les modifiers, tous les autre pourront les lires (afficher dans le cas d'un site web)

    Sinon, j'ai vu que j'étais en "users" sur le repertoire titi et non en "root". Cela a-il une incidence ?
    cela ne pose pas de problème : dans un systeme bien administré il n'est JAMAIS necessaire de se loger en root

  12. #12
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 30
    Par défaut
    766 pour les fichiers, je n'ai pas d'autres choix si je veux faire du copy () en php ?
    pour les répertoires c'est moins grave ?

  13. #13
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Citation Envoyé par arnoweb
    ok.
    Mais cela ne répond pas à ma question.
    Le fichier toto, je veux le copier dans le repertoire titi, à la place de toto.
    Le problème, c'est que le toto dans le répertoire titi existe déjà et que je ne peux pas modifier les droits en écriture et ceci même à la main. Cela doit venir de la configuration du serveur dédié avec lequel je travaille.

    Faut-il faire une modif de configuration du serveur d'hébergement, pour pouvoir changer les droits sur les fichiers ?
    si dès le départ tu positionne les droits rws pour tous sur le dossier titi
    lors de la création de toto il auras les droits rw

    donc quand ton script voudra remplacer toto par un autre il aura le droit de le faire.

    c'est simple non ?
    A+JYT

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Réponses: 1
    Dernier message: 08/08/2014, 08h45
  3. [Professionnalisation/Alternance] Recherche alternance en Master 1 réseaux / sécurité
    Par Jay D dans le forum Demandes
    Réponses: 0
    Dernier message: 26/07/2010, 20h55
  4. La Sécurité dans Access
    Par Maxence HUBICHE dans le forum Sondages et Débats
    Réponses: 81
    Dernier message: 24/06/2007, 01h07
  5. Réponses: 1
    Dernier message: 25/12/2006, 18h07

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