Chrooter plusieurs groupes dans sshd, avec differents umasq

Bonsoir,

Pardonnez-moi, mais je n’ai certainement pas suffisamment précisé le contexte.
Dans sshd, comment faire pour chrooter user1 avec les droits utilisateur user1:www-data ?

J’ai des utilisateurs appartenant au groupe SFTP qui sont chroutés avec un umask par défaut de 027 (il me semble).
Mais, j’aimerai aussi chrooter user1 qui appartient à son propre groupe, de manière à ce que lorsqu’il dépose un fichier index.html ou autres, apache2 puisse le lire. Apache2 s’exécute sous www-data.

N’hésitez pas à me demander les détails de la config si cela vous semble nécessaire.

Merci,
Franck

l’utilisateur ne peux pas faire simplement parti du groupe www-data ?
cela règlerai le problème de permissions.

J’ai essayé cela en premier. Mais il m’a semblé qu’une fois chrouté, user1 n’hérite plus des paramètres externes au jail. Par exemle, le umask global qui est dans /etc/login.defs ne s’applique plus sur un user chrouté . c’est peut être normal puisqu’il est isolé dans son jail. D’ailleurs, sshd ne peut même pas loger un user chrooté, sauf au travers d’un socket. Donc, ça montre bien qu’il est isolé du reste du système. Alors, j’ai fixé l’umask de user1 par “ForceCommand internal-sftp -u 2” dans sa section (-u 2 pour 002 ou 775)

Match Group user1
ChrootDirectory /home/sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -u 2

05/03 : Je me permets d’apporter des infos complémentaires à la description …:
j’ai rajouté “-L info” juste derrière “-u 2”, dans la ligne en gras ci-dessus . Cette option demande à sshd de loger l’activité de user1 dans le jail. Pour que cela fonctionne, j’ai dû créer le répertoire “/home/sftp/user1/dev/” qui recevra le socket “log”.Alors, j’ai rajouté la ligne “unix-stream(”/home/sftp/user1/dev/log");" dans la section “source s_src {” de syslog-ng.conf. De ce fait, j’obtiens les logs sshd pour user1 à l’extérieur du jail, dans auth.log

Bonsoir,

Je reviens sur le sujet, j’ai fais des essais et j’ai remarqué que le répertoire /home/sftp/user1 devra obligatoirement appartenir à root. Si non, user1 ne sera plus chrooté du coup. Il pourra alors avoir accès aux répertoires autorisés en lecture/exécution pour autres (755).

Si j’attribue (UID:GID) (user1:www-data) au répertoire user1 avec les droits 750, alors l’utilisateur user1 ne sera plus chrooté. Je ne sais pas pourquoi !
Du coup, je suis contraint de mettre root:user1 et 755 pour que apache2 puisse lire le site Internet que va déposer user1. le soucis est que tout autres programmes ou utilisateurs peuvent aussi rentrer dans ce répertoire. Certes pour sécuriser au moins les fichiers qui se trouvent dans ce répertoire, j’ai dû mettre leurs permissions en 640.

A +,
Franck
ps : j’ai apporté une info complémentaire dans le message que j’ai posté juste précédemment…