Attribuer des droits a un utilisateur FTPd

Bonjour,
J’ai suivi de très nombreux tutos sur pure-FTPd pour créer un utilisateur ; il n’y a aucune explication sur la création des groupes et des droits de ces groupes… Juste la création d’un utilisateur “virtuel” sans spécifier ses droits d’accès…
Et lorsque je créé un utilisateur, il n’est qu’en lecture simple…
J’ai un site Wordpress qui a un grave problème et le support du thème me demande un accès par FTP pour réparer la panne.
Mais avec le user que je lui attribue, il ne peut rien faire, vu qu’il n’est qu’en lecture seulement !
Moi j’aimerais lui attribuer les droits nécessaires sans pour autant changer les droits d’accès sur les fichiers, autrement dit je souhaite lui attribuer l’accès total à var/www/html/le_site_web
Comment faire ? Je pense qu’à la base je créé mal l’utilisateur ou alors cela se passe dans la configuration de l’installation de pure-ftp… Je ne sais pas.
Help !!!
Merci d’avance,
Wil

Voilà le lien qui me sert de support : http://debian-facile.org/doc:reseau:pure-ftpd

le premier truc qui me chagrine c’est que j’ai fait :

groupadd mon_groupe
useradd -g mon_groupe -d /dev/null -s /var/www/html/ mon_nom

parce que je souhaite accéder directement dans ce répertoire lorsque je me connecte avec mon_nom
et lorsque après je tape ça :

pure-pw list

je n’apparais pas
Je me dis “oh miiince je n’existe pas” alors je recommence la même syntaxe il me dit
useradd: user ‘mon_nom’ already exists

OK… j’existe mais je n’apparais pas. Bizarre. Et donc je poursuis la procédure :

a2enmod userdir
pure-pw useradd le_nom_du_gars -u mon_nom -D /var/www/html/le_nom_du_site

j’ai lu dans https://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
que "With -d, le_nom_du_gars will be chrooted. If you want to give joe access to the whole
filesystem, use -D instead of -d.

cd /etc/pure-ftpd/auth/
ln -s ../conf/PureDB 50puredb
pure-pw mkdb
service pure-ftpd restart

Résultat ? Lorsque j’essaie une connexion sous filezilla avec le_nom_du_gars il me dit
Échec de la tentative de connexion avec “ECONNREFUSED - Connexion refusée par le serveur”. Ca c’est nouveau, aupravant je réussissais a me connecter mais en lecture simple.

Une recherche sur ECONNREFUSED, j’ai désactivé UFW, ca ne change rien !

je viens de faire

useradd -g mon_groupe -d /dev/null -s /var/www/html/ webmaster
pure-pw list

et c’est vide…

debian-facile c’est aussi facile que Jacques Toubon il est tout bon…

lorsque je tape

pure-pw show le_nom_du_gars

Voila les infos :

UID : 1003 (mon_nom)
GID : 1003 (mon_groupe)
directory : /var/www/html/le_nom_du_site

et ensuite que des zéro en download, upload, etc… normal…

Bonjour,

Là tu as créé un utilisateur mon_nom qui a pour dossier personnel (HOME) /dev/null et pour shell /var/www/html/ !

Je ne connais pas la configuration de pure-FTPd mais généralement pour un serveur (S)FTP on créé des utilisateurs sans shell avec le dossier personnel correspondant à celui où l’on veut les confiner (chroot), exemple :

useradd -d /var/web/html/site1 -s /usr/sbin/nologin -g ftpusers webmaster_site1

Ce qui créé l’utilisateur webmaster_site1 aynt comme groupe principal ftpusers, comme dossier personnel /var/web/html/site1 et comme shell /usr/sbin/nologin

Au passage, FTP n’est pas sécurisé , il vaut mieux utiliser SFTP.

Bonjour Bruno et merci pour ta réponse,

Lorsqu’on prend un VPS avec une debian 8 chez OVH tout est pre-configuré, c’est très pratique et il est donc aussi créé un utilisateur FTP webmaster qui a un accès full dans /var/www/html/, sous pure-FTPd, c’est ce que j’ai voulu récréer avec ma commande

useradd -g mon_groupe -d /dev/null -s /var/www/html/ mon_nom

Lorsqu’on veut un VPS sous debian 10, il faut tout se taper, voila mon problème.

Je ne suis pas marié avec pure FTPd et ça me gonfle de ne pas pouvoir répliquer tout ça. Si tu as un conseil à me donner sur un module que tu utilises et où tu pourras me guider sur les commandes pour créer ce que je souhaite, ça serait très sympa :slight_smile:

J’ai peut être dit une phrase de trop : “ca serait sympa” laissant supposé que si tu ne le fais pas ce ne serait pas sympa ; ce n’était pas ce genre de sous-entendu, désolé. C’était très sympa de me répondre. Merci encore.

Pas de souci :slightly_smiling_face:

Je reviens sur ton problème initial : la demande d’accès FTP de Wordpress pour faire une mise à jour ou une correction.
Il me semble que cela ne se produit que si tout ou partie des fichiers du site n’est pas accessible en écriture à l’utilisateur qui exécute les script du site, www-data dans le contexte d’un serveur Apache avec le module PHP.
Il serait donc intéressant d’examiner l’ensemble des droits sur ton arborescence de site et cela pourrait t’éviter l’installation d’un serveur FTP qui ne sera pas forcément très sécurisée.

Je pense que les techniciens support ont besoin de cet accès pour intervenir dans la base de données qui n’est pas accessible dans l’interface de Wordpress.
Sinon pour les droits d’accès au fichiers, j’ai pour habitude de lancer la ligne

sudo chown -R www-data:www-data /var/www

après chaque manipulation, est-ce que cela suffit ?

Pardon, je n’avais pas compris que c’était un technicien qui avait besoin de cet accès.
Dans ce cas effectivement il faut soit lui donner ton accès SSH et lui faire confiance, soit configurer un accès (S)FTP
Essaie de relire ton tuto en faisant bien attention à ne pas inverser les paramètres des commandes comme je te l’ai déjà signalé.

Merci Bruno, par contre la syntaxe des commandes que j’ai utilisée est unanimement utilisée dans tous les tutos que j’ai pu lire.

Justement à ce propos, j’ai pensé que ta syntaxe était issue d’un autre module, ce qui m’a poussé à te demander ce que tu utilises.

Je pense que je vais utiliser un autre tuto
(https://doc.fedora-fr.org/wiki/PureFTPD_:_Installation_et_configuration),
je verrai bien ce que ça donne.

Regarde attentivement ta commande et lis la page de man de useradd si nécessaire :

       -d, --home-dir RÉP_PERSO
           Le nouvel utilisateur sera créé en utilisant RÉP_PERSO comme valeur de répertoire de connexion de
           l'utilisateur. Le comportement par défaut est de concaténer UTILISATEUR au répertoire RÉP_BASE, et de
           l'utiliser en tant que nom de répertoire de connexion. Il n'est pas nécessaire que le répertoire RÉP_PERSO
           existe mais il ne sera pas créé s'il n'existe pas.
       -s, --shell INTERPRÉTEUR
           Le nom de l'interpréteur de commandes initial de l'utilisateur (« login shell »). Le comportement par défaut
           est de laisser ce champ vide. Le système sélectionnera alors l'interpréteur par défaut indiqué par la variable
           SHELL dans /etc/default/useradd, ou une chaîne vide par défaut.

Tu inverse les argument -d et -s et cela je t’ai l’ai dit dès le départ…

Merci pour ta réponse Bruno, voici ce que tu m’as dit dès le départ, tu m’as suggéré dutiliser cette commande :

useradd -d /var/web/html/site1 -s /usr/sbin/nologin -g ftpusers webmaster_site1

alors que tous les tutos, eux, dans tous les exemples que j’ai trouvé sur le net disent d’utiliser cette syntaxe :

useradd -g mon_groupe -d /dev/null -s /var/www/html/ mon_nom

donc si tu me dis qu’il me faut inverser le -d et le -s cela donnerait :

useradd -g mon_groupe -s /dev/null -d /var/www/html/ mon_nom

C’est bien cela ?