• [^] # Re: C'est pas trop mal....

    Posté par . En réponse au message Rappels élémentaires sur les droits. Évalué à 2.

    >Fais alors en sorte que le fichiers JSP t'appartiennent et que l'utilisateur Tomcat ait seulement les droits en lecture dessus.


    Désolé, mais ce point-là ne sert à rien... En fait, s'il n'a plus le droit d'écriture sur le fichier, cela signifie qu'il n'a plus le droit de le modifier. Il conserve le droit de changer ses droits (héhéhé... adieu la protection), et même de le supprimer, car le droit de suppression d'un fichier dépend du répertoire dans lequel celui-ci se trouve, et non des droits du fichier lui-même. En d'autres termes, si le répertoire à les droits 755 (drwxr-xr-x), alors, comme le droit d'écriture, dans un répertoire, correspond au droit de création et de suppression de fichiers, ton utilisateur tomcat aura toujours le droit de supprimer tous les fichiers du répertoire.

    Tu peux d'ailleurs faire l'expérience : crée un fichier, mets-le en mode 000 (---------), puis essaye de le supprimer... Pas de problème!

    Il existe tout de même une solution, particulièrement tordue, pour empêcher totalement un utilisateur non root de supprimer un fichier qui lui appartient. Il s'agit de créer, sur la même partition que les fichiers en question, un répertoire appartenant à un autre utilisateur, et de placer, dans ce répertoire, des liens matériels (et non symboliques) pointant les fichiers à protéger. Ensuite, il faut retirer tous les droits sur ce répertoire (et non son contenu) à l'utilisateur visé (ici, tomcat) : n'ayant plus d'accès à ces fichiers, il ne peut les supprimer, même s'ils lui appartiennent! Et si un pirate prend le contrôle de tomcat et lui fait effacer ses fichiers, tu n'auras plus qu'à les récupérer dans ce répertoire.

    Bon, cela dit, cela n'empêche malheureusement pas le pirate de modifier les données de ces fichiers, et en particulier, il peut les tronquer à une taille nulle, ce qui revient (presque) à une suppression. Pour cela, deux parades :
    -Soit tu retires les droits d'écriture à Tomcat sur ces fichiers, en sachant que cela est contournable par un bon pirate (il suffit de rétablir les droits),
    -Soit tu emploies une solution bien plus simple, et qui t'évite aussi d'avoir à créer le répertoire de liens matériels : tu attribues les images de tomcat, en mode r--r--r--, à un utilisateur autre que celui qui lance le processus tomcat! Et le tour est joué.

    CoinKoin