gratifiant > linux.debian.user.french

G2PC (02/08/2019, 13h40)
Un administrateur système pour comprendre une définition de
PhpSecInfo ?

Comment faire pour créer un " non-world-readable directory " ?
Mon dossier tmp est dans /var/www/temporaire_php
Appartient à Apache ( www-data ).

Quel CHMOD placer ? Pourquoi l'extension de PhpSecInfo refuse de
considérer que ce dossier est un non-world-readable directory ?

La définition d'après PhpSecInfo

upload_tmp_dir is disabled, or is set to a common world-writable
directory. This typically allows other users on this server to access
temporary copies of files uploaded via your PHP scripts. You should set
upload_tmp_dir to a non-world-readable directory
Current Value: /var/www/temporaire_php (0755)
Recommended Value: A non-world readable/writable directory

J'ai testé différents CHMOD :
0700 / 1700 / 0007 / 1007
Jean-Michel OLTRA (02/08/2019, 14h10)
Bonjour,

Le vendredi 02 août 2019, G2PC a écrit...

> upload_tmp_dir is disabled, or is set to a common world-writable
> directory. This typically allows other users on this server to access
> temporary copies of files uploaded via your PHP scripts. You should set
> upload_tmp_dir to a non-world-readable directory
> Current Value: /var/www/temporaire_php (0755)
> Recommended Value: A non-world readable/writable directory


Avec 755 il n'est pas non-world-readable, tu dois bien t'en douter.

> J'ai testé différents CHMOD :
> 0700 / 1700 / 0007 / 1007


À 700, il devrait l'être. As tu eu des erreurs quelconques lorsque tu as
passé ton répertoire en 700 ?
Jean-Michel OLTRA (02/08/2019, 15h50)
Bonjour,

Le vendredi 02 août 2019, G2PC a écrit...

> Il faudrait que je regarde les 3 projets 2009 / 2015 / 2019 pour voir si
> le fichier de ce test, concernant le dossier upload_tmp_dir, a été mis à
> jour.


> N'hésitez pas à tester ce paquet, il ne nécessite aucune installation,
> il s'uffit de télécharger l'archive sur le serveur.
> C'est un équivalent à phpinfo() en très simpliste, qui se concentre sur
> certaines valeurs propres à PHP.


J'ai regardé, très vite fait, car je suis plus Java que Php.



La méthode qui fait le test s'appelle _exec_Test et c'est ligne 65

Là, tu peux mettre du débogage et loguer $perms pour voir quelle valeur est
réellement prise en compte par cette fonction fileperms() que je n'ai pas
regardée.
Ainsi, tu auras une idée de pourquoi la série de tests lignes 69 à 72
échoue.

Si tu as une version différente, tu dois pouvoir trouver l'équivalent.
Jean-Michel OLTRA (02/08/2019, 23h20)
Bonjour,

Le vendredi 02 août 2019, G2PC a écrit...

> Si je echo $perms, $perms vaut 17407.


> mon chmod lui est de 1777 sur le dossier tmp.


Essaie `chmod 407` sur le répertoire temporaire.
Daniel Caillibaud (05/08/2019, 13h40)
Le 02/08/19 =C3=A0 22:41, G2PC <g2pc> a =C3=A9crit :
> Avant toute chose, j'aimerais r=C3=A9ellement trouver de l'information su= r ce
> qu'est, officiellement, un dossier dit " A non-world readable/writable
> directory ".


Ben, c'est un dossier dans lequel tout le monde ne peut pas lire/=C3=A9crir=
e, donc un chmod xx1 max.

drwxrwx--x
^^^ le proprio peut lire / =C3=A9crire / entrer
^^^ le groupe peut lire / =C3=A9crire / entrer
^^^ les autres ne peuvent pas lire / =C3=A9crire, seulement entrer

Donc tu dois faire un chmod 700 ou 750 ou ce que tu veux mais avec du xxy o=
u y vaut 0 ou 1

--=20
Daniel

R: Parce que =C3=A7a renverse b=C3=AAtement l'ordre naturel de lecture !
Q: Mais pourquoi citer en fin de message est-il si effroyable ?
R: R=C3=A9pondre au dessus de la citation
Q: Quelle est la chose la plus d=C3=A9sagr=C3=A9able dans un message ?
Daniel Caillibaud (07/08/2019, 13h20)
Le 07/08/19 =C3=A0 12:49, G2PC <g2pc> a =C3=A9crit :
>=20
>=20
> - Donc tu dois faire un chmod 700 ou 750 ou ce que tu veux mais avec du x= xy ou y vaut 0 ou 1
> Daniel Caillibaud=20
>=20
> - Essaie `chmod 407` sur le r=C3=A9pertoire temporaire.
> jm
> ####
> Bon, au final, vous vous contredisez, et, =C3=A7a me rassure un peu,=20


Tant mieux, c'est une tr=C3=A8s bonne illustration de l'adage "ne JAMAIS la=
ncer une commande lue qq
part sans comprendre ce que =C3=A7a fait !"

Et pour trancher =3D> `man chmod`

Un 407 ne devrait pas marcher puisque le proprio ne pourrait plus entrer da=
ns le dossier
mais que n'importe qui pourrait entrer, lire et =C3=A9crire=E2=80=A6=20

Et =C3=A7a parait curieux de refuser tous les droits au groupe et de les
accepter pour tout le monde, mais on peut faire =C3=A7a pour justement donn=
er "tous les droits sauf
pour un groupe".

La r=C3=A8gle est assez simple, pour un chmod xyz, x donne les droits du pr=
oprio, y ceux du groupe
et z ceux pour tous les autres. La combinaison de droits se fait en additio=
nnant
4 : r / lecture (read)
2 : w / modification (write), pour un dossier =C3=A7a veut dire pouvoir le =
renommer/supprimer ou
cr=C3=A9er un fichier/dossier dedans
1 : x / ex=C3=A9cution, pour un dossier =C3=A7a signifie pouvoir entrer ded=
ans

donc ici le 407 donne :
4 : r-- pour le proprio
0 : --- pour le groupe
7 : rwx pour tous les autres

Je pense que jm pensais au masque, le compl=C3=A9mentaire, un masque de 407=
donnerait un chmod 370,
qui est curieux (moins de droits pour le proprio que le groupe) mais serait=
d'=C3=A9querre avec la
demande initiale de ne pas avoir de "world writable".

> Une chose est sur c'est que si les droits du /tmp_upload
> pour les " autres " n'est pas =C3=A9gal =C3=A0 7, Joomla me hurle dessus = avec un
> message d'erreur. Je ne peux d=C3=A8s lors plus naviguer sur le CMS Jooml= a.


Donc Joomla n'est pas compatible avec des r=C3=A9glages de s=C3=A9curit=C3=
=A9 minimaux, mais =C3=A7a c'est pas une
nouvelle :-D
(=C3=A7a me surprend quand m=C3=AAme, mais on en voit de belles tous les jo=
urs)

Car ce 7 signifie justement rwx pour "other", donc tout le monde peut lire/=
=C3=A9crire/entrer

--=20
Daniel

Apprendre, pour Socrate, c'est se ressouvenir de ce qu'on a oubli=C3=A9.
Platon
Daniel Caillibaud (07/08/2019, 14h00)
Le 07/08/19 =C3=A0 13:38, G2PC <g2pc> a =C3=A9crit :
> Mais, en attendant, sur le syst=C3=A8me debian, les droits sont de 1777 s= ur
> les dossiers tmp /tmp et /var/tmp


=C3=80 noter, le 1 de d=C3=A9part, le sticky bit, qui veut dire que tout le=
monde peut cr=C3=A9er un fichier
mais que le fichier cr=C3=A9=C3=A9 ne peut ensuite =C3=AAtre modifi=C3=A9 q=
ue par son proprio (`man chmod` pour le
d=C3=A9tail).

> D=C3=A8s lors, pourquoi le dossier /upload_tmp_dir pour php ne serait t'il
> pas lui aussi en 1777 ?


Tout le monde doit pouvoir =C3=A9crire dans /tmp, c'est l'OS qui te met =C3=
=A0 dispo un endroit o=C3=B9 tu
peux =C3=A9crire, mais pour php y'a aucune raison que qqun d'autre que php =
puisse lire / =C3=A9crire dans
un dossier qui lui est r=C3=A9serv=C3=A9.

En g=C3=A9n=C3=A9ral on met ce dossier en 700 ou 750, en mettant en proprio=
le user qui fait tourner php
(=C3=A7a d=C3=A9pend de ton installation de php).

--=20
Daniel

Un homme qui a r=C3=A9ussi est un homme qui gagne plus d=E2=80=99argent=20
que sa femme n=E2=80=99en d=C3=A9pense. Et une femme qui a r=C3=A9ussi est=
=20
une femme qui a trouv=C3=A9 un tel homme.
Lana Turner
Eric Degenetais (07/08/2019, 18h00)
D'autres utilisateurs que www-data peuvent appartenir au groupe www-data.
Il est possible que das ce cas l'outil trouve que c'est trop large parce
que seul l'utilisateur www-data, sans exception, devrait pouvoir lire (il
est le seul utilisateur censé créer et utiliser ces fichiers) .
=> 0700

Cordialement
______________
Éric Dégenètais
Henix




Le mer. 7 août 2019 à 17:29, G2PC <g2pc> a écrit :
[..]
Discussions similaires