# Impossible de se connecter en SFTP sur un utilisateur après lui avoir donné les droits d'écriture

**URL:** <https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512>\
**Category:** Support Debian\
**Tags:** sftp\
**Created:** [Mai 9, 2022, 8:11 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512 "2022-05-09T08:11:50Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lucaaasjo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/48db29/32.png) [@Lucaaasjo](https://www.debian-fr.org/u/Lucaaasjo)\
**Post date:** [Mai 9, 2022, 8:11 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/1 "2022-05-09T08:11:50Z")

</div>

Bonjour,

J’ai un soucis avec le serveur SFTP que je configure sous Debian 11.  
J’ai créé plusieurs utilisateurs avec chacun un répertoire dans un dossier `/ftp`, je peux m’y connecter tout fonctionne. Le problème étant que ces utilisateurs n’ont que les droits de lecture sur leur propre répertoire et non d’écriture (755).  
Quand je fais un `sudo chmod 775 /ftp/dsisftp` par exemple, cela donne bien les droits d’écriture à l’utilisateur dsisftp sur son répertoire `/ftp/dsisftp`. Mais quand je veux m’y connecter comme d’habitude avec la commande `sftp dsisftp@192.168.0.10` j’ai cette erreur qui survient :

```
client_loop: send disconnect: Broken pipe
Connection closed.
Connection closed

```

Est-ce que je dois changer les droits d’autres dossiers pour certains utilisateurs ? Est-ce que je dois modifier quelque-chose dans mon `/etc/ssh/sshd_config` ?

 ![image](https://www.debian-fr.org/uploads/default/original/2X/b/bfe2356bbea2e62dc9967dde457ffbc4db04fe75.png)

Merci d’avance pour vos réponses.

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Mai 9, 2022, 8:38 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/2 "2022-05-09T08:38:23Z")

</div>

> [@Lucaaasjo](#):
>
> Le problème étant que ces utilisateurs n’ont que les droits de lecture sur leur propre répertoire et non d’écriture (755).

Je pense qu’il y a incompréhension sur les propriétés et droits des fichiers.  
755 signifie:

- 7: l’utilisateur propriétaire a les droits lecture (4), + écriture (2) + exécution (1) sur le fichier/répertoire
- 5: les utilisateurs membres du groupe propriétaire ont les droits de lecture (4) + exécution (1)
- 5: tous les autres utilisateurs ont aussi les droits de lecture et d’exécution

_Note:_ sur un répertoire, les droits d’exécution permettent de traverser le répertoire

Donc un fichier/répertoire avec les droits 755 est bien accessible en écriture à son utilisateur propriétaire.  
Tu as donné les permissions de ton répertoire, mais pas son utilisateur / groupe propriétaire.

L’erreur `broken pipe` est très générique, cherche plutôt dans les logs du serveur juste après une tentative infructueuse (dans `/var/log/syslog` je pense)

---

<div class="post-metadata">

**Author:** ![Lucaaasjo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/48db29/32.png) [@Lucaaasjo](https://www.debian-fr.org/u/Lucaaasjo)\
**Post date:** [Mai 9, 2022, 9:00 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/3 "2022-05-09T09:00:09Z")

</div>

Merci de ta réponse.

Le propriétaire du répertoire n’est pas dsisftp mais root:root, car si je ne fais pas ça je ne peux pas m’y connecter en SFTP.

D’accord, je vais regarder les logs merci.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mai 9, 2022, 9:51 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/4 "2022-05-09T09:51:59Z")

</div>

- Reprend ta config SSH, après avoir créer un groupe dédié, tel que `sshsftp`.
- et ajoute chacun de tes utilisateurs au groupe dédié
- vérifie les droits sur le répertoire parent /ftp, il est absolument impératif qu’il appartienne à root, chmod 0755 suffit.
- les sous-répertoires dédiés à chacun des utilisateurs doivent avoir les droits utilisateurs dédiés, chmod 0755 aussi. - _et si je ne me trompe pas un chmod 0705 devrait fonctionner_…

Quant à la config de sshd:

```auto
AllowGroups sshsftp

Match Group sshsftp
    ForceCommand internal-sftp
    ChrootDirectory %h

```

Pour autant que le HOME - répertoire personnel - de chaque utilisateur dédié soit bien déclaré…

_Edit (à 14:36)_ : Pensez à **redémarrer le service SSH**!

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Mai 9, 2022, 10:03 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/5 "2022-05-09T10:03:40Z")

</div>

Ah, donc tu as ajouté l’utilisateur `dsisftp ` au groupe `root`, vu qu’il peut écrire sur le répertoire après un `chmod 775` ?  
C’est pas le top, en termes de conception de sécurité.

A mon humble avis la solution à la fois la plus simple, et mieux en termes de sécurité, c’est de définir le répertoire $HOME des utilisateurs qui utiliseront le SFTP dans `/ftp`:

`adduser --home /ftp/toto toto`

Et quand tu te connectes au serveur en SFTP avec l’utilisateur `toto`, tu arrives dans le répertoire `/ftp/toto` sur lequel tu as tous les droits nécessaires.

Pour bien isoler les répertoires des utilisateurs (afin qu’ils ne puissent pas remonter l’arborescence des répertoires et regarder ce qu’il y a dans le $HOME du voisin) tu peux supprimer les permissions pour `autres utilisateurs` de ces répertoires (le dernier octet des permissions doit être à 0): `chmod 770 /ftp/toto`

Au lieu de tout ça, tu peux continuer à utiliser les directives `ChrootDirectory` (c’est aussi bien), mais il me semble bien qu’il est normal que ton utilisateur n’ait pas d’accès en écriture au répertoire `/ftp/dsisftp`, dans ce cas là, crée plutôt un sous-répertoire (par exemple `fichiers`) dans ce dossier, et transfère sa propriété à `dsisftp`:

```auto
mkdir -p /ftp/dsisftp/files
chown -R dsisftp:dsisftp /ftp/dsisftp/files 

```

---

<div class="post-metadata">

**Author:** ![Lucaaasjo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/48db29/32.png) [@Lucaaasjo](https://www.debian-fr.org/u/Lucaaasjo)\
**Post date:** [Mai 9, 2022, 12:11 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/6 "2022-05-09T12:11:52Z")

</div>

**Pour PengouinPdt :**

Merci pour ta réponse,

`/ftp` appartient déjà à root, et je vais laisser 755 effectivement ça suffit je ne l’avais pas compris au départ.  
J’ai fais ce qu’il fallait pour le groupe sshsftp mais ça ne résout pas mon problème.

**Pour Sputnik93 :**

Non je n’ai pas rajouté dsisftp au groupe root, et je n’ai pas laissé le chmod en 775 car sinon je ne peux pas me connecter en SFTP, j’ai donc laissé en 755.

Pour les HOME je l’ai déjà fais, il y a dans /ftp un répertoire pour chaque utilisateur et quand je me connecte à dsisftp par exemple, je me retrouve directement dans `/ftp/dsisftp`.

Je peux faire les get pour récupérer les fichiers qui sont dedans, mais quand j’essaye de faire un put j’ai l’erreur :

```
`remote open("le_fichier _que_je_veux_put") : Permission denied`

```

Je ne peux pas non plus supprimer des fichiers.

Et une fois connecter à un utilisateur je ne peux pas remonter l’arborescence donc tout est déjà bien isolé j’avais fais le nécéssaire.

D’accord je vais essayer ça pour le sous-dossier merci beaucoup !

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mai 9, 2022, 12:36 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/7 "2022-05-09T12:36:13Z")

</div>

> [@Lucaaasjo](#):
>
> J’ai fais ce qu’il fallait pour le groupe sshsftp mais ça ne résout pas mon problème.

tu as bien tes utilisateurs dédiés affiliés au groupe ? `getent group sshsftp` ?  
tu as bien redémarré le service ssh ?

PS : Si tu as bien fait selon le mode opératoire et la config SSH, que j’ai donné précédemment, ça doit fonctionner. Je fonctionne comme ça sur plusieurs serveurs, au fil du temps, depuis des années.  
Parmi mes utilisateurs, certain a même un home différent des autres, et ça fonctionne autant. Il faut juste veiller à être sûr du home et des droits utilisateurs.  
(chmod 755, ni plus ni moins, sauf à vouloir être encore plus restrictif).

Juste pour être sûr : que donne `getent passwd dsisftp` ?  
_(idem pour d’autres utilisateurs - que tu peux vérifier sans nous restituer)_

---

<div class="post-metadata">

**Author:** ![Lucaaasjo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/48db29/32.png) [@Lucaaasjo](https://www.debian-fr.org/u/Lucaaasjo)\
**Post date:** [Mai 9, 2022, 12:49 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/8 "2022-05-09T12:49:48Z")

</div>

**Pour Sputnik93 :**

C’est parfait en créant un fichier `/ftp/dsisftp/fichiers` et en définissant dsisftp comme propriétaire, je n’ai plus de soucis de permissions non accordée sur les créations de répertoires et les put. En revanche je n’ai toujours pas la permission de supprimer quoi que ce soit en étant connecter en SFTP. Je ne veux pas le mettre en place pour l’instant mais au cas où j’en aurai besoin, j’aimerais comprendre le soucis. Je pense que c’est une autorisation à ajouter dans le sshd\_config.

**Pour PengouinPdt :**

Oui j’avais tout fais et après avoir redémarré `service sshd restart` ça ne changeait pas, mais ce n’est pas un soucis ça fonctionne maintenant merci. Pour le chmod c’est vrai que 755 est le mieux je vais laisser comme ça.  
Pour le `getent passwd dsisftp` ça ne fonctionne pas, mais j’imagine que c’est tant mieux c’était pour vérifier qu’on ne puisse pas récupérer le mot de passe de l’utilisateur c’est ça ? Merci je n’aurai pas pensé à essayer cette commande.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mai 9, 2022, 12:53 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/9 "2022-05-09T12:53:08Z")

</div>

> [@Lucaaasjo](#):
>
> En revanche je n’ai toujours pas la permission de supprimer quoi que ce soit en étant connecter en SFTP

Comportement anormal si et seulement si tu es connecté avec le bon utilisateur, dans son home, ayant les droits utilisateurs adéquats. Si c’est le cas, l’utilisateur peut logiquement faire des lectures, écritures de fichiers.

> [@Lucaaasjo](#):
>
> Pour le `getent passwd dsisftp` ça ne fonctionne pas, mais j’imagine que c’est tant mieux c’était pour vérifier qu’on ne puisse pas récupérer le mot de passe de l’utilisateur c’est ça ? Merci je n’aurai pas pensé à essayer cette commande.

1/ ce n’est pas normal que ça ne fonctionne pas. **Si le terminal ne retourne aucune information, c’est que l’utilisateur n’existe pas !**  
2/ cela affiche le résultat des informations liées à l’utilisateur, et non pas le mot-de-passe.  
Tel que :

```auto
$ getent passwd myuser
myuser:x:1000:1000:myuser,,,:/home/myuser:/bin/bash

```

L’avant dernière colonne restitue le home de l’utilisateur en question 😉  
Elle peut directement être ciblée en utilisant l’ensemble de cette commande :  
`$ getent passwd your-user | awk -F ':' '{ print $6 }'`

En passant, tu ne nous as pas non plus restitué la commande `getent group sshsftp` ! quid ?

Et, pour finir, si tu veux en savoir plus sur getent : `man getent` te permettra de découvrir les multiples possibilités de cet outil, bien pratique.

Ahhh, et dernier point, très important : Que restitue le log authlog ? (après une tentative de connexion).

---

<div class="post-metadata">

**Author:** ![Lucaaasjo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/48db29/32.png) [@Lucaaasjo](https://www.debian-fr.org/u/Lucaaasjo)\
**Post date:** [Mai 9, 2022, 1:06 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/10 "2022-05-09T13:06:09Z")

</div>

Au temps pour moi j’avais mal écris la commande 😅

Voici les résultats :  
 ![image](https://www.debian-fr.org/uploads/default/original/2X/d/d6e29c9316bcea964c952b999f8aca4a895da143.png)

---

<div class="post-metadata">

**Author:** ![Lucaaasjo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/48db29/32.png) [@Lucaaasjo](https://www.debian-fr.org/u/Lucaaasjo)\
**Post date:** [Mai 9, 2022, 1:06 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/11 "2022-05-09T13:06:42Z")

</div>

Et pour le auth.log après une connexion et déconnection voici les résultats :

 ![image](https://www.debian-fr.org/uploads/default/original/2X/a/ad41b51c24bed27cd7a6c76d573567b1ee0e3583.png)

---

<div class="post-metadata">

**Author:** ![Lucaaasjo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/48db29/32.png) [@Lucaaasjo](https://www.debian-fr.org/u/Lucaaasjo)\
**Post date:** [Mai 9, 2022, 1:08 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/12 "2022-05-09T13:08:15Z")

</div>

![image](https://www.debian-fr.org/uploads/default/original/2X/9/9f1bcadd6c17eedf63cac3cd613651768a8a3092.png)

Et ceci pour la commande du groupe.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mai 9, 2022, 1:14 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/13 "2022-05-09T13:14:26Z")

</div>

Donc, dans l’immédiat, pour récapituler :

- le HOME de dsisftp semble bien déclaré, et est bien /ftp/dsisftp
- le group sftp a bien l’utilisateur dsisftp - et est pour l’instant le seul
- l’authentification semble en effet se passer correctement

la seule chose que je ne vois pas est la config SSH du service :

- quel est le nom du groupe marqué dedans ?  
`grep -i group /etc/ssh/sshd_config` devrait suffire 😉  
mais nous restituer l’ensemble des deux écritures nous permettrait de vérifier qu’il n’y ait pas d’erreur de typos, par exemple…

**Autre point** : merci de simplement copier-coller les retours écrans, et non pas fournir des copies d’écrans - c’est mal les copies d’écrans dans ce contexte, car cela alourdit inutilement les posts, et n’apporte aucune lisibilité hors image, dont l’accessibilité de l’information.

---

<div class="post-metadata">

**Author:** ![Lucaaasjo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/48db29/32.png) [@Lucaaasjo](https://www.debian-fr.org/u/Lucaaasjo)\
**Post date:** [Mai 9, 2022, 1:28 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/14 "2022-05-09T13:28:14Z")

</div>

Le groupe utilisé est sftp, je ne l’ai pas appelé sshsftp.  
La commande me retourne :  
`AllowGroups sftp`  
`Match Group sftp`

Je ne peux pas copier coller ce que me retourne la console, je suis en console web il n’y a pas de copier coller bi-directionnel… Car la remote console de vcenter ne fonctionne pas sur mon ordinateur. Donc soit je recopie ce que la commande me retourne au clavier, soit je met une capture d’écran.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mai 9, 2022, 1:33 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/15 "2022-05-09T13:33:52Z")

</div>

> [@Lucaaasjo](#):
>
> Le groupe utilisé est sftp, je ne l’ai pas appelé sshsftp.  
> La commande me retourne :  
> `AllowGroups sftp`  
> `Match Group sftp`

OK, très bien.  
En espérant qu’il n’y ait pas d’erreur dans le reste de la config SSH lié à la déclaration `Match Group` et en espérant que les droits utilisateurs sur le répertoire /ftp, puis les sous-répertoires soient les bons - ça doit fonctionner, sans soucis.  
Autrement, cela vient d’ailleurs - mais perso, je ne vois pas où et en quoi !

* * *

> [@Lucaaasjo](#):
>
> Je ne peux pas copier coller ce que me retourne la console, je suis en console web il n’y a pas de copier coller bi-directionnel… Car la remote console de vcenter ne fonctionne pas sur mon ordinateur. Donc soit je recopie ce que la commande me retourne au clavier, soit je met une capture d’écran.

Une possibilité puisque tu as du réseau et est connecté sur le Net est d’utiliser un service de paste très léger, tel que [0x0.st](https://0x0.st/), par exemple :

```auto
$ grep -i group /etc/ssh/sshd_config | tee sshd_config.txt
$ curl -F'file=@sshd_config.txt' https://0x0.st

```

- copier l’URL retournée dans la console sur le forum
- ensuite supprimer ledit fichier texte 😉

---

<div class="post-metadata">

**Author:** ![Lucaaasjo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/48db29/32.png) [@Lucaaasjo](https://www.debian-fr.org/u/Lucaaasjo)\
**Post date:** [Mai 9, 2022, 1:47 UTC](https://www.debian-fr.org/t/impossible-de-se-connecter-en-sftp-sur-un-utilisateur-apres-lui-avoir-donne-les-droits-decriture/86512/16 "2022-05-09T13:47:42Z")

</div>

D’accord je ne connaissais pas ça, merci pour l’information !
