Linux : des droits spécifiques ftp ?
Comment donner des droits spécifiques ftp afin de renforcer (un peu) la sécurité de votre (vos) site(s) ?
Imaginons que l’on souhaite avoir plusieurs personnes qui travaillent sur le même site, qui veulent accéder aux sources via ftp, qui veulent pouvoir écrire dedans.
Imaginons aussi que l’on donne que le droit de lecture au processus apache, afin que si un pirate réussit à s’introduire dans le système via apache, il n’ait le droit que de lire les fichiers.
Configurons Linux de telle sorte que le processus apache soit lancé en tant qu’utilisateur apache
.
Disons que nous avons besoin de travailler avec deux personnes :
- Laurent (utilisateur =
laurent
) - Frédéric (utilisateur =
frederic
)
Il faut donc que :
- l’utilisateur =
laurent
ait les droits en lecture et écriture dans un répertoire et sur des fichiers donnés ; - l’utilisateur =
frederic
ait les droits en lecture et écriture dans le même répertoire et sur les mêmes fichiers ; - l’utilisateur =
apache
ait les droits en lecture uniquement dans le même répertoire et sur les mêmes fichiers.
C’est simple.
Il faut créer un groupe pour les utilisateurs à qui on souhaite donner les droits de lecture et d’écriture. Appelons ce groupe happyfews
. Il faut éditer le fichier /etc/groups
et y ajouter :
happyfews:x:5000:laurent,frederic,
etc,
avec tous les utilisateurs à qui l’on veut donner la possibilité de lire et d’écrire.
Puis sur le(s) répertoire(s) de travail, il faut appliquer les droits suivants :
chown apache <repertoire>
chgrp happyfews <repertoire>
chmod 570 <repertoire>
Ce qui signifie respectivement :
- Le répertoire appartient à apache ;
- Le répertoire appartient au groupe “happyfews” ;
- Le groupe “happyfews” possède les droits de lecture + écriture, mais le propriétaire du répertoire lui-même n’a que le droit de lecture ;
- Tout utilisateur autre que le propriétaire ou un membre du groupe n’a aucun accès.
Pour mémoire :
5=user:read+execute, 7=group:read+write+execute, 0=other:no access
Il ne restera ensuite qu’à ajouter/supprimer les utilisateurs qui font partie de ce groupe pour autoriser/refuser l’accès en écriture au(x) répertoire(s) concerné(s).