Serveur FTP vsFTPd et droits

Bonjour,

j’ai installé le serveur ftp vsFTPd pour les utilisateurs locaux tout c’est bien passé mais j’ai un souci car quand je me connecte au ftp sous mon login pas de souci j’ai le droit d’ecriture (je peux créer un dossier) par contre dès que c’est un autre utilisateur il accéde bien a son ftp mais il n’a pas les droits d’écriture.

Voici mon fichier vsftpd.conf :

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=300
data_connection_timeout=120
connect_timeout=60
accept_timeout=60
async_abor_enable=NO
ascii_upload_enable=NO
ascii_download_enable=NO
chroot_local_user=YES
local_root=perso_html
chroot_list_enable=NO
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
use_localtime=YES

Avez vous une idée?

Merci

regarde si tu trouves ton bonheur là :
lea-linux.org/cached/index/G … s_ACL.html

Bonjour,

J’ai la même config que toi, et je n’ai pas le pb. Suggestions:

  • tu es sûr que perso_html existe? Si c’est pour gérer un site web perso, c’est plutôt public_html.

  • regarde les droits des répertoires concernés dans les home

En principe, avec cette config, chaque utilisateur accède par ftp avec son identificateur et mdp, et dispose (chrooté dans sa zône) de l’intégralité de ses droits.

bon je pense effectivement que c’est un problème de droits sur le repertoire perso_html (c’est bien perso_html et non public_html) car il appartient au groupe root au lieu d’appartenir a l’utilisateur.

A ce propos j’ai une question :

lorsque l’on créait un nouvel utilisateur avec la commade adduser, par défaut il est attribué au groupe du même nom mais si on veux l’attriber a un autre groupe qu’elle est la commande a utiliser?

De plus l’orsque le nouvel utilisateur est cree il a un /home/user mais si sous ma session je me connecte en console sous root est que je lui creait un repertoire dans /home/user, le repertoire cree appartiendra au groupe root et non au groupe de l’user.
Comment faire pour que le repertoire lui appartienne?

Merci

Question subsidiaire : comment on empèche de se connecter sur les autres utilisateur (sans parler du chroot). Comment on fait que lorsque de l’authentification le fait de rentrer root ou un certain user soit interdit ?

@+

Par défaut sur la debian etch, un nouvel utilisateur est créé avec un groupe de même nom. Mais je préfère pour ma part le créer avec le groupe “users” qui est commun à tous les utilisateurs. cela permet de définir des opérations que tous les utilisateurs peuvent faire. Par exemple, un fichier appartenant à “utilisateur:users” avec “rw-rw-r–” est modifiable par tous les utilisateurs (=membre du groupe “users”) et seulement par eux.

Ça se configure dans le fichier: /etc/adduser.conf. Si tu mets:

alors, le nouvel utilisateur sera créé avec le groupe dont le gid est donné par:

La valeur 100 étant au départ celle du groupe “users”.

Pour les utilisateurs existants, il y a deux choses à faire pour qu’ils aient le groupe “users”:

1- pour normaliser les fichiers existants, utilise chgrp avec l’option “-R” sur les home des utilisateurs

2- pour que chaque utilisateur puisse créer désormais des fichiers et des répertoires avec le groupe “users”, il faut que ce groupe soit le “groupe principal” dans lequel ils sont inscrits. Regarde du côté de la commande “usermod” avec l’option “-g”. Une commande du genre:

devrait fonctionner mais peut-être faut-il relancer quelque chose pour la prise en compte. Je n’ai pas essayé car je n’utilise que les outils graphiques pour ça (KUser sous KDE).

[quote=“Deusexodus”]Question subsidiaire : comment on empèche de se connecter sur les autres utilisateur (sans parler du chroot). Comment on fait que lorsque de l’authentification le fait de rentrer root ou un certain user soit interdit ?
[/quote]

Pour empêcher une liaison ftp par un utilisateur (système ou réel), il suffit d’ajouter son nom dans le fichier /etc/ftpusers. root y est déjà.

Je voudrais pas dire de bétise mais je crois avoir réussis à me connecter sur le compte root.

Je vais vérifier et je vous dirais mais si ça marche ça sera pas mal pour moi.

Merci @+

Bonjour,

merci beaucoup Tyrtamos pour toutes ces explications.

Effectivement le mode graphique doit être plus convivial mais je préfére tout d’abord bien connaitre le mode console ce qui me permettra de mieux comprendre ce qui se passe derriére l’interface graphique et surtout de pouvoir apprehender au maximun les rudiments d’un système comme Linux qui assez nouveau pour moi.

NS : J’ai fait un tour sur ton site qui est très instructif et que j’ai ajouté dans mes Favoris.

A ce propos dans ton tuto pour installer apache,php ,mysql et vsftpd, tu signales un problème de droits sur les fichiers uploades pour PHP.

je cite :

Cela implique qu’a chaque fois que l’on upload les fichiers d’un scripts php qui comporte un fichier txt (exemple : session.txt) il faudra modifier les droits de ce fichier?
Merci

Bonjour,

Le principe est simple:

1- quand tu uploades un fichier (ou un répertoire) sur ton site web, il appartient au login de la connexion ftp, et il est créé avec un droit 644 pour les fichiers et 755 pour les répertoires (=configuration habituelle du serveur ftp).

2- mais quand un script php est activé, il travaille pour le compte d’apache! Il ne pourra donc que créer des fichiers appartenant à apache (dans un répertoire sur lequel apache a le droit d’écriture), et ne modifier des fichiers que si apache a le droit d’écriture dessus.

Ce qui veut dire:

=> qu’il ne pourra pas modifier un fichier simplement uploadé par ftp, parce qu’il n’a pas le droit d’écriture dessus

=> qu’il ne pourra pas créer un nouveau fichier, parce qu’il n’a pas le droit d’écriture sur le répertoire (simplement uploadé par ftp) dans lequel le fichier doit être créé.

C’est pour cela que les cms écrits en php (blog, forum, galerie, wiki, etc…) nécessitent, lors de leur installation, d’élargir certains droits pour qu’ils puissent fonctionner. Et pour des raisons de sécurité, il ne faut procéder qu’aux modifications mentionnées dans le manuel du cms, et surtout pas plus!

Pour répondre plus précisément à ta question: le fichier session.txt ne doit être élargi dans ses droits que s’il doit être modifié dans son contenu par un script php. S’il doit seulement être lu, il ne faut pas toucher à ses droits.

Ok?

Merci pour les explications, c’est clair.