Liens symboliques

Fermé
gintoxic Messages postés 524 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 7 avril 2016 - 24 févr. 2013 à 13:52
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 25 févr. 2013 à 19:52
Bonjour,
je suis assez novice dans le monde Linuxien et je dois lier deux fichier entre eux
c'est à dire que je voudrais que lorsque l'utilisateur se connecte a son ftp (chmod 700 dont il est propriétaire) ait acces a son dossier "www" (chmod 770 dont www-data est le propriétaire) qui est autre part dans le serveur.

- /media/home/sftp/home/utilisateur <<< repertoire d'arrivée (chroot)
- /home/vhosts/utilisateur/www/images <<<< repertoire à linker depuis

j'ai essayé sans succes, j'obtiens un lien (je pense) qui est fermé et lorsque je clique droit une fenetre s'ouvre et me dit : "no such file..."

le résultat que je souhaiterais est :
/media/home/sftp/home/utilisateur/www/images (chmodé à 770 et dont www-data soit le proprio)


pour info, mon serveur est sous debian et je travail en shell sous windows avec Bitvise (il me permet de voir graphiquement l'ensemble des dossiers/fichiers du serveur

merci à vous pour votre aide


4 réponses

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
24 févr. 2013 à 14:50
Le problème c'est que par définition d'un chroot, tu es sensé rester emprisonné dans ton arborescence et donc ne pas pouvoir suivre un lien symbolique qui t'en fait sortir.

La stratégie consiste dans ton cas à faire un "mount bind".
https://forums.commentcamarche.net/forum/affich-16654048-lien-symbolique-sur-ftp
https://forums.commentcamarche.net/forum/affich-1681389-monter-une-partition-dans-home#7

Bonne chance
1
gintoxic Messages postés 524 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 7 avril 2016 10
25 févr. 2013 à 11:03
est ce que je me trompe si je commence par fixer dans fstab le point de montage (ou le chemin, je ne sais pas comment appeler cela) ?
puis de lancer comme ligne de commande ?

mount --bind /home/vhosts/utilisateur/www /media/home/sftp/home/utilisateur

tout cela est carrément nouveau pour moi et je ne connais pas l'ordre des répertoires

merci par avance


de cette manière www conservera les droit www-data et le chroot /media/...../utilisateur sera intact ?
0
gintoxic Messages postés 524 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 7 avril 2016 10
25 févr. 2013 à 11:30
oki ça a marché mais le souci qui persiste c'est que le chroot étant chmodé à 700 et l'utilisateur en étant le propiétaire, le "nouveau dossier" ainsi créé récupère les droit du propriétaire www-data et donc n'en est plus le proprio

l'utilisateur ne peut plus ouvrir son dossier

je crois que j'ai un souci de manipulation des droits, voire du dossier...
je vais voir mais n'hésitez pas a répondre

merci a vous
0
gintoxic Messages postés 524 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 7 avril 2016 10
25 févr. 2013 à 12:25
il s'agit visiblement d'un conflit de permissions
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié par mamiemando le 25/02/2013 à 19:55
Pour répondre à ta première question, si tu ne sais pas l'ordre des paramètres, tu peux regarder dans la documentation :

man mount


Tu verras que si on passe une "source de données" (un device, un partage réseau...) et un point de montage (un répertoire vide) la source apparaît toujours avant le point de montage. Plus de précisions sur mount et /etc/fstab ici :
http://www.mistra.fr/tutoriel-linux-monter-peripherique.html

Je ne sais pas trop quel est ton serveur ftp, personnellement j'utilise proftpd qui par défaut est mappé avec des utilisateurs linux (leur home + leur droit).

Peut-être que tu peux (à l'aide des options uid et gid) préciser l'utilisateur et le groupe propriétaires au moment de faire le mount bind.

Ensuite tu peux configurer proftpd pour se coupler avec une base de données (mysql ou postgresql par exemple) pour spécifier des utilisateurs spécifiques, mappé avec les droits d'un utilisateur linux particulier et avec un home particulier.
http://www.xenetis.org/a_29_installer_le_serveur_ftp_proftpd_et_stocker_les_utilisateurs_dans_une_base_de_donnees_mysql_sous_linux_debian_lenny.html

Ça dépend un peu de tes besoins à vrai dire...

Bonne chance
0