Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

/var/www appartient à root ?

10 réponses
Avatar
Benoit B
Bonjour =C3=A0 tous,

Est-ce normal que lorsqu'on installe apache2, /var/www appartient =C3=A0
root et pas =C3=A0 www-data ?

Merci d'avance.

--=20
Benoit

10 réponses

Avatar
Ph. Gras
Le 9 mars 2016 à 12:29, Benoit B a écrit :

Bonjour à tous,

Est-ce normal que lorsqu'on installe apache2, /var/www appartient à
root et pas à www-data ?

Merci d'avance.

--
Benoit




Oui en effet, tout est en root :
~# ls -ll -R /etc/apache2
/etc/apache2:
total 80
-rw-r--r-- 1 root root 9640 mars 4 2013 apache2.conf
drwxr-xr-x 2 root root 4096 août 22 2015 conf.d
-rw-r--r-- 1 root root 1465 mars 4 2013 envvars
-rw-r--r-- 1 root root 31063 oct. 21 2012 magic
drwxr-xr-x 2 root root 12288 mars 6 11:20 mods-available
drwxr-xr-x 2 root root 4096 oct. 4 2013 mods-enabled
-rw-r--r-- 1 root root 750 mars 3 2013 ports.conf
drwxr-xr-x 2 root root 4096 août 22 2015 sites-available
drwxr-xr-x 2 root root 4096 oct. 4 2013 sites-enabled

/etc/apache2/conf.d:
total 16
-rw-r--r-- 1 root root 269 mars 3 2013 charset
-rw-r--r-- 1 root root 3296 mars 3 2013 localized-error-pages
-rw-r--r-- 1 root root 143 mars 3 2013 other-vhosts-access-log
-rw-r--r-- 1 root root 2590 mars 4 2013 security

/etc/apache2/mods-available:
total 368
-rw-r--r-- 1 root root 332 mars 3 2013 actions.conf
-rw-r--r-- 1 root root 66 oct. 21 2012 actions.load
-rw-r--r-- 1 root root 811 mars 4 2013 alias.conf
-rw-r--r-- 1 root root 62 oct. 21 2012 alias.load
-rw-r--r-- 1 root root 60 mars 3 2013 asis.load
-rw-r--r-- 1 root root 72 oct. 21 2012 auth_basic.load
-rw-r--r-- 1 root root 74 oct. 21 2012 auth_digest.load
-rw-r--r-- 1 root root 74 mars 3 2013 authn_alias.load
-rw-r--r-- 1 root root 72 oct. 21 2012 authn_anon.load
-rw-r--r-- 1 root root 85 oct. 21 2012 authn_dbd.load
-rw-r--r-- 1 root root 70 oct. 21 2012 authn_dbm.load
-rw-r--r-- 1 root root 78 mars 3 2013 authn_default.load
-rw-r--r-- 1 root root 72 oct. 21 2012 authn_file.load
-rw-r--r-- 1 root root 90 oct. 21 2012 authnz_ldap.load
-rw-r--r-- 1 root root 70 mars 3 2013 authz_dbm.load
-rw-r--r-- 1 root root 78 mars 3 2013 authz_default.load
-rw-r--r-- 1 root root 82 mars 3 2013 authz_groupfile.load
-rw-r--r-- 1 root root 72 mars 3 2013 authz_host.load
-rw-r--r-- 1 root root 74 oct. 21 2012 authz_owner.load
-rw-r--r-- 1 root root 72 mars 3 2013 authz_user.load
-rw-r--r-- 1 root root 3265 mars 3 2013 autoindex.conf
-rw-r--r-- 1 root root 70 oct. 21 2012 autoindex.load
-rw-r--r-- 1 root root 62 oct. 21 2012 cache.load
-rw-r--r-- 1 root root 70 mars 3 2013 cern_meta.load
-rw-r--r-- 1 root root 69 mars 3 2013 cgid.conf
-rw-r--r-- 1 root root 60 oct. 21 2012 cgid.load
-rw-r--r-- 1 root root 58 oct. 21 2012 cgi.load
-rw-r--r-- 1 root root 76 oct. 21 2012 charset_lite.load
-rw-r--r-- 1 root root 37 mars 3 2013 dav_fs.conf
-rw-r--r-- 1 root root 79 oct. 21 2012 dav_fs.load
-rw-r--r-- 1 root root 58 oct. 21 2012 dav.load
-rw-r--r-- 1 root root 68 oct. 21 2012 dav_lock.load
-rw-r--r-- 1 root root 58 oct. 21 2012 dbd.load
-rw-r--r-- 1 root root 438 mars 3 2013 deflate.conf
-rw-r--r-- 1 root root 66 mars 3 2013 deflate.load
-rw-r--r-- 1 root root 122 mars 3 2013 dir.conf
-rw-r--r-- 1 root root 58 oct. 21 2012 dir.load
-rw-r--r-- 1 root root 887 mars 4 2013 disk_cache.conf
-rw-r--r-- 1 root root 89 mars 3 2013 disk_cache.load
-rw-r--r-- 1 root root 64 oct. 21 2012 dump_io.load
-rw-r--r-- 1 root root 58 oct. 21 2012 env.load
-rw-r--r-- 1 root root 66 oct. 21 2012 expires.load
-rw-r--r-- 1 root root 72 oct. 21 2012 ext_filter.load
-rw-r--r-- 1 root root 89 oct. 21 2012 file_cache.load
-rw-r--r-- 1 root root 64 oct. 21 2012 filter.load
-rw-r--r-- 1 root root 66 oct. 21 2012 headers.load
-rw-r--r-- 1 root root 62 mars 3 2013 ident.load
-rw-r--r-- 1 root root 68 mars 3 2013 imagemap.load
-rw-r--r-- 1 root root 66 mars 3 2013 include.load
-rw-r--r-- 1 root root 408 mars 3 2013 info.conf
-rw-r--r-- 1 root root 60 oct. 21 2012 info.load
-rw-r--r-- 1 root root 176 mars 3 2013 ldap.conf
-rw-r--r-- 1 root root 60 oct. 21 2012 ldap.load
-rw-r--r-- 1 root root 76 oct. 21 2012 log_forensic.load
-rw-r--r-- 1 root root 185 mars 3 2013 mem_cache.conf
-rw-r--r-- 1 root root 87 mars 3 2013 mem_cache.load
-rw-r--r-- 1 root root 7439 mars 4 2013 mime.conf
-rw-r--r-- 1 root root 60 oct. 21 2012 mime.load
-rw-r--r-- 1 root root 81 mars 3 2013 mime_magic.conf
-rw-r--r-- 1 root root 72 oct. 21 2012 mime_magic.load
-rw-r--r-- 1 root root 666 mars 3 2013 negotiation.conf
-rw-r--r-- 1 root root 74 oct. 21 2012 negotiation.load
-rw-r--r-- 1 root root 898 sept. 22 2013 php5.conf
-rw-r--r-- 1 root root 59 sept. 22 2013 php5.load
-rw-r--r-- 1 root root 87 oct. 21 2012 proxy_ajp.load
-rw-r--r-- 1 root root 355 mars 3 2013 proxy_balancer.conf
-rw-r--r-- 1 root root 97 mars 3 2013 proxy_balancer.load
-rw-r--r-- 1 root root 803 mars 3 2013 proxy.conf
-rw-r--r-- 1 root root 95 oct. 21 2012 proxy_connect.load
-rw-r--r-- 1 root root 141 mars 3 2013 proxy_ftp.conf
-rw-r--r-- 1 root root 87 oct. 21 2012 proxy_ftp.load
-rw-r--r-- 1 root root 89 oct. 21 2012 proxy_http.load
-rw-r--r-- 1 root root 62 oct. 21 2012 proxy.load
-rw-r--r-- 1 root root 89 oct. 21 2012 proxy_scgi.load
-rw-r--r-- 1 root root 1126 mars 3 2013 reqtimeout.conf
-rw-r--r-- 1 root root 72 oct. 21 2012 reqtimeout.load
-rw-r--r-- 1 root root 66 oct. 21 2012 rewrite.load
-rw-r--r-- 1 root root 1211 mars 3 2013 setenvif.conf
-rw-r--r-- 1 root root 68 oct. 21 2012 setenvif.load
-rw-r--r-- 1 root root 66 oct. 21 2012 speling.load
-rw-r--r-- 1 root root 3112 mars 4 2013 ssl.conf
-rw-r--r-- 1 root root 58 mars 3 2013 ssl.load
-rw-r--r-- 1 root root 753 mars 3 2013 status.conf
-rw-r--r-- 1 root root 64 oct. 21 2012 status.load
-rw-r--r-- 1 root root 72 oct. 21 2012 substitute.load
-rw-r--r-- 1 root root 64 oct. 21 2012 suexec.load
-rw-r--r-- 1 root root 70 oct. 21 2012 unique_id.load
-rw-r--r-- 1 root root 604 mars 3 2013 userdir.conf
-rw-r--r-- 1 root root 66 oct. 21 2012 userdir.load
-rw-r--r-- 1 root root 70 oct. 21 2012 usertrack.load
-rw-r--r-- 1 root root 74 oct. 21 2012 vhost_alias.load

/etc/apache2/mods-enabled:
total 0
lrwxrwxrwx 1 root root 28 oct. 4 2013 alias.conf -> ../mods-available/alias.conf
lrwxrwxrwx 1 root root 28 oct. 4 2013 alias.load -> ../mods-available/alias.load
lrwxrwxrwx 1 root root 33 oct. 4 2013 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root root 33 oct. 4 2013 authn_file.load -> ../mods-available/authn_file.load
lrwxrwxrwx 1 root root 36 oct. 4 2013 authz_default.load -> ../mods-available/authz_default.load
lrwxrwxrwx 1 root root 38 oct. 4 2013 authz_groupfile.load -> ../mods-available/authz_groupfile.load
lrwxrwxrwx 1 root root 33 oct. 4 2013 authz_host.load -> ../mods-available/authz_host.load
lrwxrwxrwx 1 root root 33 oct. 4 2013 authz_user.load -> ../mods-available/authz_user.load
lrwxrwxrwx 1 root root 32 oct. 4 2013 autoindex.conf -> ../mods-available/autoindex.conf
lrwxrwxrwx 1 root root 32 oct. 4 2013 autoindex.load -> ../mods-available/autoindex.load
lrwxrwxrwx 1 root root 26 oct. 4 2013 cgi.load -> ../mods-available/cgi.load
lrwxrwxrwx 1 root root 30 oct. 4 2013 deflate.conf -> ../mods-available/deflate.conf
lrwxrwxrwx 1 root root 30 oct. 4 2013 deflate.load -> ../mods-available/deflate.load
lrwxrwxrwx 1 root root 26 oct. 4 2013 dir.conf -> ../mods-available/dir.conf
lrwxrwxrwx 1 root root 26 oct. 4 2013 dir.load -> ../mods-available/dir.load
lrwxrwxrwx 1 root root 26 oct. 4 2013 env.load -> ../mods-available/env.load
lrwxrwxrwx 1 root root 27 oct. 4 2013 mime.conf -> ../mods-available/mime.conf
lrwxrwxrwx 1 root root 27 oct. 4 2013 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root root 34 oct. 4 2013 negotiation.conf -> ../mods-available/negotiation.conf
lrwxrwxrwx 1 root root 34 oct. 4 2013 negotiation.load -> ../mods-available/negotiation.load
lrwxrwxrwx 1 root root 27 oct. 4 2013 php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root root 27 oct. 4 2013 php5.load -> ../mods-available/php5.load
lrwxrwxrwx 1 root root 33 oct. 4 2013 reqtimeout.conf -> ../mods-available/reqtimeout.conf
lrwxrwxrwx 1 root root 33 oct. 4 2013 reqtimeout.load -> ../mods-available/reqtimeout.load
lrwxrwxrwx 1 root root 31 oct. 4 2013 setenvif.conf -> ../mods-available/setenvif.conf
lrwxrwxrwx 1 root root 31 oct. 4 2013 setenvif.load -> ../mods-available/setenvif.load
lrwxrwxrwx 1 root root 29 oct. 4 2013 status.conf -> ../mods-available/status.conf
lrwxrwxrwx 1 root root 29 oct. 4 2013 status.load -> ../mods-available/status.load

/etc/apache2/sites-available:
total 12
-rw-r--r-- 1 root root 692 mars 3 2013 default
-rw-r--r-- 1 root root 7251 mars 3 2013 default-ssl

/etc/apache2/sites-enabled:
total 0
lrwxrwxrwx 1 root root 26 oct. 4 2013 000-default -> ../sites-available/default
~# ls -ll /var
total 60
drwxr-xr-x 2 root root 4096 mars 8 06:25 backups
drwxr-xr-x 14 root root 4096 oct. 29 2013 cache
drwxr-xr-x 41 root root 4096 mars 4 19:27 lib
drwxrwsr-x 2 root staff 4096 juin 17 2012 local
lrwxrwxrwx 1 root root 9 oct. 4 2013 lock -> /run/lock
drwxr-xr-x 13 root root 4096 mars 9 06:26 log
drwx------ 2 root root 16384 oct. 4 2013 lost+found
drwxrwsr-x 2 root mail 4096 mars 9 12:50 mail
drwx------ 2 root root 4096 août 22 2015 monit
drwxr-xr-x 2 root root 4096 oct. 10 2012 opt
lrwxrwxrwx 1 root root 4 oct. 4 2013 run -> /run
drwxr-xr-x 7 root root 4096 oct. 4 2013 spool
drwxrwxrwt 2 root root 4096 mars 9 06:26 tmp
drwxr-xr-x 2 root root 4096 oct. 4 2013 www
~# service apache2 status
Apache2 is NOT running.

Je l'ai installé pour configurer phpMyAdmin, mais n'y ai jamais touché ;-)

Ph. Gras=
Avatar
yamo'
Salut,
Benoit B a écrit le 09/03/2016 12:30 :


Est-ce normal que lorsqu'on installe apache2, /var/www appartient à
root et pas à www-data ?





Apache n'a pas besoin d'écrire dans /var/www/html
D'ailleurs, il est conseillé d'utiliser des VirtualHosts :
<https://httpd.apache.org/docs/2.4/fr/vhosts/name-based.html> et donc ce
répertoire n'est pas forcément l'endroit où il faut mettre les fichiers.

--
Stéphane
Avatar
andre_debian
On Wednesday 09 March 2016 12:52:38 Ph. Gras wrote:
Le 9 mars 2016 à 12:29, Benoit B a écrit :
> Est-ce normal que lorsqu'on installe apache2, /var/www appartient à
> root et pas à www-data ?
> Benoit



Le user et group doivent être : www-data:www-data

# chown -Rf www-data:www-data /var/www/*

Sinon ça peut poser problèmes pour éditer des fichiers en ligne.

Sans doute par défaut, Apache met les droits à root.

Bonne journée.

André
Avatar
Eric Degenetais
Le 9 mars 2016 à 13:38, a écrit :

Sinon ça peut poser problèmes pour éditer des fichiers en ligne.


Et l'idée est, justement que par défaut ce n'est pas le besoin, d onc
ça paraît rationnel de restreindre les droits par défaut pou r éviter
de se rendre vulnérable sans le savoir.

bonne journée
______________
Éric Dégenètais
Henix



http://www.henix.com
http://www.squashtest.org
Avatar
andre_debian
On Wednesday 09 March 2016 14:11:16 Eric Degenetais wrote:
Le 9 mars 2016 à 13:38, a écrit :
> Sinon ça peut poser problèmes pour éditer des fichiers e n ligne.

Et l'idée est, justement que par défaut ce n'est pas le besoin, donc
ça paraît rationnel de restreindre les droits par défaut p our éviter
de se rendre vulnérable sans le savoir.
Éric Dégenètais



Tu veux dire que par défaut il faut que le répertoire d'accueil,
ici /var/www/, des pages Web soit user:group à www-data ou à root ?

André
Avatar
Eric Degenetais
Le 9 mars 2016 à 15:02, a écrit :

u veux dire que par défaut il faut que le répertoire d'accueil,
ici /var/www/, des pages Web soit user:group à www-data ou à ro ot ?




root avec des droits en lecture pour les autres ou root.www-data avec
lecture seulement pour le groupe www-data ne me semble pas une
mauvaise idée par défaut. De cette manière on ne peut expose r sur
internet des droits d'écriture par simple ignorance.
______________
Éric Dégenètais
Henix



http://www.henix.com
http://www.squashtest.org
Avatar
Pierre Malard
--Apple-Mail=_AE90122D-B56A-406C-A5D1-9B0312E21A2A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8


Le 9 mars 2016 à 13:38, a écrit :

On Wednesday 09 March 2016 12:52:38 Ph. Gras wrote:
Le 9 mars 2016 à 12:29, Benoit B a écri t :
Est-ce normal que lorsqu'on installe apache2, /var/www appartient à
root et pas à www-data ?
Benoit





Le user et group doivent être : www-data:www-data

# chown -Rf www-data:www-data /var/www/*

Sinon ça peut poser problèmes pour éditer des fichiers en ligne.

Sans doute par défaut, Apache met les droits à root.



Je ne pense pas que laisser à www-data la propriété de tout ce qui est accessible via HTTP soit véritablement une « bonne idée » et il me semble normal que, par défaut, ce ne soit pas le cas.

En effet, comme beaucoup de failles de sécurité viennent par là (PHP, CGI foireux, …) est-il pertinent de laisser le pirate la facilité d’exploiter ces failles pour déposer et modifier ce qu’ils veulent sur les dépôts Apache (ou autre) ?
Enfin, à quoi cela sert-il de laisser « www-data » avoir accès à un .html ou même un .php lorsqu’il s’agit d’afficher le contenu d’un fichier HTML ou d’exécuter un PHP ?

Il est bien plus prudent de ne laisser un accès en écriture à www-data uniquement sur les répertoires sur lesquels il DOIT avoir accès (dépôt de document par le ouaibe par exemple). Même si c’est bien pratique d’installer un bidule par une connexion HTTP, il y a bien trop de danger à laisser un tel accès à demeure.

Cordialement

--
Pierre Malard

« Si l'on veut croire en l'humanité,
il faut voir et comprendre l'inhumanité »
| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--


--Apple-Mail=_AE90122D-B56A-406C-A5D1-9B0312E21A2A
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.28
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCgAGBQJW4GSeAAoJELzRDw+wKgIyWrQP/icaNVRU7IxKJR2tdDarIPF+
OB8kvBdJ/3tmdxtdeec2lbfHis7STyHTBl7oas+cybHajOfzp0ySWjQ7iY9nPVY8
0fFX4vcYP5ZC50Q/O4gvgi1v2dTZGCf9Lrntb0EzLvEsVJ9tJAIr6Y4CIq3NlcBN
QCry0KlPRxFxG97EfKM52AQ+efADidL5pjCyKQYFR5PTm8Yqvj8O6r+zS+9djFmI
GzD9NaNYYBcXtKBuudYt1t1m7z502qWzm3l5mp/72S0R7CYqZq71h8duOzGFnRFo
7GIAOYdvMKp8MYhGvkBloH/CbDHpGYzsoteb0TEYeqXl92G9HtCEScmSB5WuxjFC
WY7leAflsu25dMjLYoZ05fQxzbTWEkjP8hHMbTK02GGiT8BC1XH9gJMnUcyDSFuY
4bFeyNy/gCScjk12Re4teWmKq1wdd1UpQBRVsbmBM7V9zwgeBJ99qR595ZBdjvlU
gOibvzqoo6yueui/HOOlo78n0gcuBGvFRYxxrGvLnWjYkB6WPVrmICgb2H3i82FN
npQETqh3hHIAN1yL5JiNE5DbYtS7VsuEhf0nVxUaQYHMbE8jwSBzcPa5Tv+l3GdU
/mPwpGKFcf1f8RcygZD2+0NR6wnqIHfNMVllsFnCWl4Ac/jf+vE6jHVOxhJNgjJl
MWaL7gvaxlU5yQvpGGfO
=epwE
-----END PGP SIGNATURE-----

--Apple-Mail=_AE90122D-B56A-406C-A5D1-9B0312E21A2A--
Avatar
Ph. Gras
Le 9 mars 2016 à 18:59, Pierre Malard a écrit :


Le 9 mars 2016 à 13:38, a écrit :

On Wednesday 09 March 2016 12:52:38 Ph. Gras wrote:
Le 9 mars 2016 à 12:29, Benoit B a écr it :
Est-ce normal que lorsqu'on installe apache2, /var/www appartient à
root et pas à www-data ?
Benoit





Le user et group doivent être : www-data:www-data

# chown -Rf www-data:www-data /var/www/*

Sinon ça peut poser problèmes pour éditer des fichiers en ligne.

Sans doute par défaut, Apache met les droits à root.



Je ne pense pas que laisser à www-data la propriété de tout ce qui est accessible via HTTP soit véritablement une « bonne idée » et il me semble normal que, par défaut, ce ne soit pas le cas.

En effet, comme beaucoup de failles de sécurité viennent par là (PHP, CGI foireux, …) est-il pertinent de laisser le pirate la facilité d’exploiter ces failles pour déposer et modifier ce qu’ils veulent sur les dépôts Apache (ou autre) ?
Enfin, à quoi cela sert-il de laisser « www-data » avoir accès à un .html ou même un .php lorsqu’il s’agit d’afficher le contenu d’un fichier HTML ou d’exécuter un PHP ?

Il est bien plus prudent de ne laisser un accès en écriture à www-data uniquement sur les répertoires sur lesquels il DOIT avoir accès (dépôt de document par le ouaibe par exemple). Même si c’est bien pratique d’installer un bidule par une connexion HTTP, il y a bien trop de danger à laisser un tel accès à demeure.

Cordialement

--
Pierre Malard



À ce moment-là, je vais vous faire partager le fruit de mon expérience qui m'a mené à prendre des décisions différentes,
mais que j'applique avec la pleine conscience de ce que je fais est mal.

Quand je fais tourner le bazar avec des droits en 755 pour les répertoires et 644 pour les fichiers, avec root:www-data en
user, j'ai des problèmes pour utiliser le FTP. Chaque site est rangé dans une home et il faut que je donne user:www-data
en droits, et 775 pour les répertoires et 644 pour les fichiers PHP. Sinon, ça ne fonctionne pas.

J'ai lu qu'il était possible de faire une manip avec les UID et GID, mais je ne l'ai pas bien comprise, alors j'ai laissé choir :
http://www.yann.com/fr/hebergement-web-sous-gnulinux-quels-permissions-pou r-les-fichiers-09/05/2011.html

Mais je suis prêt à m'amender ;-)

Ph. Gras

« Si l'on veut croire en l'humanité,
il faut voir et comprendre l'inhumanité »
| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--

Avatar
Pierre Malard
--Apple-Mail=_51AE67D6-454F-4C23-822A-384B2AE74CFB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8

Le 9 mars 2016 à 19:39, Ph. Gras a écrit :

Le 9 mars 2016 à 18:59, Pierre Malard a écrit :


Le 9 mars 2016 à 13:38, a écrit :

On Wednesday 09 March 2016 12:52:38 Ph. Gras wrote:
Le 9 mars 2016 à 12:29, Benoit B a écrit :
Est-ce normal que lorsqu'on installe apache2, /var/www appartient à
root et pas à www-data ?
Benoit





Le user et group doivent être : www-data:www-data

# chown -Rf www-data:www-data /var/www/*

Sinon ça peut poser problèmes pour éditer des fichiers en ligne.

Sans doute par défaut, Apache met les droits à root.



Je ne pense pas que laisser à www-data la propriété de tout ce qui est accessible via HTTP soit véritablement une « bonne idée » et il me semble normal que, par défaut, ce ne soit pas le cas.

En effet, comme beaucoup de failles de sécurité viennent par là (PHP, CGI foireux, …) est-il pertinent de laisser le pirate la facilité d’exploiter ces failles pour déposer et modifier ce qu’ils veulent sur les dépôts Apache (ou autre) ?
Enfin, à quoi cela sert-il de laisser « www-data » avoir accès à un .html ou même un .php lorsqu’il s’agit d’afficher le contenu d’un fichier HTML ou d’exécuter un PHP ?

Il est bien plus prudent de ne laisser un accès en écriture à www-data uniquement sur les répertoires sur lesquels il DOIT avoir accès (dépôt de document par le ouaibe par exemple). Même si c’est bien pratique d’installer un bidule par une connexion HTTP, il y a bien trop de danger à laisser un tel accès à demeure.

Cordialement

--
Pierre Malard



À ce moment-là, je vais vous faire partager le fruit de mon expérience qui m'a mené à prendre des décisions différentes,
mais que j'applique avec la pleine conscience de ce que je fais est mal.

Quand je fais tourner le bazar avec des droits en 755 pour les répertoires et 644 pour les fichiers, avec root:www-data en
user, j'ai des problèmes pour utiliser le FTP. Chaque site est rangé dans une home et il faut que je donne user:www-data
en droits, et 775 pour les répertoires et 644 pour les fichiers PHP. Sinon, ça ne fonctionne pas.

J'ai lu qu'il était possible de faire une manip avec les UID et GID, mais je ne l'ai pas bien comprise, alors j'ai laissé choir :
http://www.yann.com/fr/hebergement-web-sous-gnulinux-quels-permissions-pou r-les-fichiers-09/05/2011.html

Mais je suis prêt à m'amender ;-)



Si c’est pour déposer les fichiers avec un FTP, il est certain qu’une autorisation root:www-data, quelque soit les autorisations, est problématique. Par contre, une autorisation ftpuser:www-data est tout à fait envisageable si on configure son serveur FTP avec une authentification « virtuelle » non Unix. Pure-FTP et ProFTP savent très bien faire ça. Dans ce cas, les utilisateurs authentifiés n’utilisent qu’un seul UID FTP (« ftpuser ») dont on peut aisément gérer les droits pour que www-data n’ait que des droits de lecture et l’utilisateur ftpuser les droits d’écriture. L’utilisateur FTP doit alors appartenir au groupe www-data et un masque du type 027 pour que ça marche lors des dépôts FTP. Chaque utilisateur FTP doit avoir un accès sur son (ou ses) dépôt(s) HTTP dans son pseudo-répertoire d’accueil.

Du coup, l’appartenance de l’arborescence des dépô ts HTTP est ftpuser:www-data et les droits 750 (répertoires) et 640 (fichiers). Il n’y a pas besoin que les autres utilisateurs Unix aient ne serait-ce qu’un accès en lecture sur ces dépà ´ts.


--
Pierre Malard

« La vérité ne triomphe jamais, mais ses ennemis finissent
toujours par mourir... »
Max Placnk (1858-1947)
| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--


--Apple-Mail=_51AE67D6-454F-4C23-822A-384B2AE74CFB
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.28
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCgAGBQJW4RdlAAoJELzRDw+wKgIy/oQP+wdvbv2FjdsTtrf3iKUaMTJA
giLpqu66hc1K82Lt1vILMkrjfPOv/KKRUbIZrOEUDPgS6OJbCOKez2Kg/qFXriEn
y4JBFIl4Qi5n8XpMuojn32cjUfaKNXu0dt0MeKS0vZQPbbJ43b/+LnbPWTDTbZL6
VmM/UxG5YRlXb0wJBp8FygR1BBpOewh4X8j/HGf1buD50GHo5b9MubBqBxIsXw8y
eSghNrL6HUonP9WMiaZXdjPV9/cT0lLpbBMvOBS3vEILEiaFMT7t8gbzwJEfJ+qo
DyaL1W94UhX+gQWalX9FUr0QugTNDUBDnI+HfnWePdJQdy4TK4cDa61HBZyg/n03
DW9A6edHARaS6eR6skxJXCncnuYO6CO9KzT5bgJ+xdqZExCgwD9XebKGCwVoL540
KijTaQh+AdkJi8AXVR6mXvCPKoStjuNP2y3TjZJhh+75jH5vNg0WTlU5aNB6D1R4
OlSymjSctBmM7RvtO4mVmIOboHFEcjeggbYLSDa/ID7jNyc4FEGACKj/Q15jCmT5
58CdcIjbY8ghHRC1eBh0X8z/iEuiLGZuiU0Kw7cQJbLmyEyPlq7wnYG7ecCeyRp0
yh4i07oV59YuAlF43rX3zwtVuy/tB8bCCgPgpKpWhf7mSSJ1mQizo5htvO0ZadJ6
H2ZH+dx17rzDUVQqbi/v
=8WPR
-----END PGP SIGNATURE-----

--Apple-Mail=_51AE67D6-454F-4C23-822A-384B2AE74CFB--
Avatar
Ph. Gras
Le 10 mars 2016 à 07:42, Pierre Malard a écrit :


Si c’est pour déposer les fichiers avec un FTP, il est certain qu’une autorisation root:www-data, quelque soit les autorisations, est problématique. Par contre, une autorisation ftpuser:www-data est tout à fait envisageable si on configure son serveur FTP avec une authentification « virtuelle » non Unix. Pure-FTP et ProFTP savent très bien faire ça. Dans ce cas, les utilisateurs authentifiés n’utilisent qu’un seul UID FTP (« ftpuser ») dont on peut aisément gérer les droits pour que www-data n’ait que des droits de lecture et l’utilisateur ftpuser les droits d’écriture. L’utilisateur FTP doit alors appartenir au groupe www-data et un masque du type 027 pour que ça marche lors des dépôts FTP. Chaque utilisateur FTP doit avoir un accès sur son (ou ses) dépôt(s) HTTP dans son pseudo-répertoire d’accueil.

Du coup, l’appartenance de l’arborescence des dépà ´ts HTTP est ftpuser:www-data et les droits 750 (répertoires) et 640 (fichiers). Il n’y a pas besoin que les autres utilisateurs Unix aient ne serait-ce qu’un accès en lecture sur ces dépôts.


--
Pierre Malard

« La vérité ne triomphe jamais, mais ses ennemis finissent
toujours par mourir... »
Max Placnk (1858-1947)
| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--



Merci Pierre, je crois avoir compris la manip maintenant :-)

Ph. Gras=