droits complexes [pure-ftpd] - Linux et OS Alternatifs
Marsh Posté le 27-08-2005 à 15:56:51
Il y a une raison particulier pour laquelle tu passes par des virtual users ? Ca serait peut-etre plus facile de gerer les droits selon les groupes/utilisateurs si ceux si etaient "reels", non ? C'est un avis perso, parce que je n'ai jamais vraiment utilisé les virtual users
Pour empecher les users de supprimer les fichiers, regagardes dans la man de pure-ftps, c'est lsurment l'option -K
Verifie (et eventuellement, montre-nous) que tes utilisateurs appartiennent bien aux bons groupes et que les dossiers ont bien les bonnes permissions (ls -l)
Marsh Posté le 27-08-2005 à 16:08:23
drwx---r-x 7 grp1 grp1 4096 2005-08-27 15:26 dossier_grp1
drwx---r-x 4 grp2 root 4096 2005-08-26 23:18 dossier_grp2
et les users virtuel appartiennent bien aux groupes
pour les users virtuels, bah j'ai lu un tuto ou ils faisaient comme ca, apres si tu me dit que c'est plsu facil avec des users réel, bah pourquoi pas
Marsh Posté le 27-08-2005 à 16:20:36
Boulet_Man a écrit : |
-K
Allow users to resume and upload files, but NOT to delete them. Directories can be removed, but only if they are empty.
(cf man pure-ftpd )
ensuite pour le reste man chmod pour limiter les accès en fonction des users .
(les utilisateurs virtuels ne sont pas obligés d'utiliser les memes uid/gid )
Marsh Posté le 27-08-2005 à 16:23:24
Alors, comme je ne connais pas le fonctionnement des virtual user, ce que je vais dire est peut-etre faux, mais:
- les permissions pour le dossier_grp1 n'autorise pas les utilisateurs du groupe a ecrire/executer a l'interieur de ce dossier. Seul l'utilisateur grp1 a le droit de tout faire et tout les autres, seulemnet le droit de lire/executer. Ca me parait bizarre . Les permissions pour le groupe sont nulles, tu es sûr que c'est ce que tu veux ?
- les permissions pour le dossier_grp2 sont a peu près les même, a savoir que seul l'utilisateur grp2 aura tous les droits.
Tu es sûr que les utilisateurs grp1 et grp2 existent ?
Quoi qu'il en soit, les permissions sont mauvaises.
Montre-nous aussi les permissions des rep perso de chaque utilisateurs
Marsh Posté le 27-08-2005 à 16:24:05
je vais reessayer avec chmod, si ca marche pas je mettrai des user normaux
sinon je met dans quel fichier la commande pour lancer pureftpd, pour le lancer au démarage
merci
Marsh Posté le 27-08-2005 à 16:26:16
Ca depend de l'utilisation du ftp. Si tu ne l'utilise qu'occasionnelement, il vaut mieux choisir le mode standalone et le demarrer "manuellement". Sinon, choisi le mode de gestion par (x)inetd. Dans ce cas, il sera lancer au demarrage de (x)inetd.
[EDIT] tu peux toujours faire un script avec la ligne d'execution de pure-ftpd avec toute les options que tu veux pour eviter d'avoir a les retaper a chaque fois (dans le cas du choix du mode standalone).
Marsh Posté le 27-08-2005 à 16:27:04
sebchap a écrit : Alors, comme je ne connais pas le fonctionnement des virtual user, ce que je vais dire est peut-etre faux, mais: |
drwxr-xr-x 2 grp1 grp1 4096 2005-08-26 23:18 user1
drwxr-xr-x 2 grp1 grp1 4096 2005-08-26 23:16 user2
user1 et user2 ont ete créé dans pureftpd, donc les users virtuels marchent bien
faut que je regle avec chmod alors ? vais etudier le man
Marsh Posté le 27-08-2005 à 16:31:16
Passe par des users reels Je trouve ca plus facile.
Visiblement, pour les virtual users, il suffit de specifier le groupe auquel appartient le virtual user en tant qu'owner pour que ca marche ? Et comme pure-ftpd fait pour differencier le virtual user (designé par le nom du groupe) et le groupe ? Bref, je capte quedal
Je vais voir vite fait cette histoire de virtual user mais je te conseil de passer par la gestion des utilisateur "unix"
Marsh Posté le 27-08-2005 à 16:31:47
sebchap a écrit : tu peux toujours faire un script avec la ligne d'execution de pure-ftpd avec toute les options que tu veux pour eviter d'avoir a les retaper a chaque fois (dans le cas du choix du mode standalone). |
Ca me parait le plus simple
Mais comment je fais un script pour dire qu'a chaque boot il execute telle commande ?
Marsh Posté le 27-08-2005 à 16:32:26
sebchap a écrit : Passe par des users reels Je trouve ca plus facile. |
Je pense que c'est ce que je vais faire
Marsh Posté le 27-08-2005 à 16:40:04
Boulet_Man a écrit : Ca me parait le plus simple |
Si tu veux vraiment que ton ftp soit lancer a chaque demarrage, alors c'est peut-etre mieux de laisser (x)inetd le gerer (mode superserver). Sinon, tu fais un script bidon, du genre:
|
Tu met ce script dans /etc/init.d/ et tu lance la commande update-rc.d mon_script defaults
Marsh Posté le 27-08-2005 à 16:45:19
Mais le truc bizare c'est qu'il y a deja un script pure-ftpd dans init.d, mais il se lance pas
Marsh Posté le 27-08-2005 à 16:50:28
sebchap a écrit : Passe par des users reels Je trouve ca plus facile. |
un virtual user correspond a un uid et a un gid . ( précisé dans le pureftpd.passwd )
exemple
Citation : % pure-pw show mikala |
le but étant de mettre par exemple plusieurs utilisateurs dans un un meme home en 'économisant' des utilisateurs réels
par exemple on peut imaginer un user toto pouvant uploader dans /home/mikala/toto et étant restreint a ce répertoire .
En ce qui concerne les umask il est la encore possible de spécifier le umask voulu en se servant de -U ( cf man pureftpd une fois de plus )
boulet_man> tu utilises quel distribution ? cela serait plus simple pour te dire que faire , au lieu notamment de modifier le script de démarrage .
ensuite une fois de plus man chmod pour spécifier les acces lecture/ecriture des users .
par contre l'utilisateur mikala lui doit pouvoir modifier si il veut les fichiers présents dans toto .
on s'arrange donc pour donner a toto (utilisateur virtuel ) les uid/gid de mikala .
Marsh Posté le 27-08-2005 à 16:52:26
Oui, c'est le script lancer par (x)inetd si tu as configuré pure-ftpd en mode superserver.
Nomme ton script autrement
Marsh Posté le 27-08-2005 à 16:53:02
je suis sous ubuntu
le truc c'est que les users virtuels ont bien leur repertoire, mais ils voient pas ceux des autres (ca je verai le man pour umask)
mais le plus important, j'arrive pas a rajouter un dossier visible par tout le monde
Marsh Posté le 27-08-2005 à 16:53:35
sebchap a écrit : Oui, c'est le script lancer par (x)inetd si tu as configuré pure-ftpd en mode superserver. |
c'est que j'ai fait
Marsh Posté le 27-08-2005 à 17:00:04
donc debian a priori .
tu peux peut etre lire le petit tutoque j'ai fait pour comprendre notamment le lancement de pure-ftpd
en résumé tu choisis le mode de fonctionnement dans /etc/default/pure-ftpd-common le choix entre inetd/standalone ( nette préférence pour le mode standalone )
Ensuite tu veux un truc de ce genre
/data/ftp/user1
/data/ftp/user2
/data/ftp/user3
/data/ftp/commun
afin que user1 & co puisse uploader dans leur home
et voir ce qui est commun ?
si oui suffit de chrooter les users dans leur home
et de faire un ln -s vers le commun .
(il faut s'assurer ceci dit que la version de pure-ftpd de unbutu est compilé avec l'option virtual-chroot . )
Tu peux aussi utiliser les directory Alias ( la encore vérifier que c'est compilé avec le --with-diraliases
)
Marsh Posté le 27-08-2005 à 17:02:16
mikala a écrit : donc debian a priori . |
exactement ce que je voulai faire
je lirai tout ca demain, un grand merci
Marsh Posté le 27-08-2005 à 00:00:44
J'ai configurer pure-ftp coreectement pour que tous les utilisateurs aient un dossier perso ou ils puissent uploader
mais je veux plus compliqué
j'ai fait 2 groupes, avec dedans des users virtuels
les users d'un meme groupe doivent voir leur fichiers (ce qui n'est pas la cas la), mais pas ceux de l'autre groupe (2 dossiers differents)
les 2 groupes doivent voir un meme dossier
ils ne doivent pas pouvoir suprimer les fichiers, meme dans leur dossier perso (umask= ???:???)
donc ca donne:
user grp1 user grp2
/home/ftp r r
/home/grp1 r -
/home/grp2 - r
+ leur dossier perso en rw
donc je dois regler l'umask pour leur dossier perso (quelle valeur ?), mais pour les autre dosier je fais comment ?
la methode suivante ne marche pas , a moins que je m'y sois mal prix
Sur ftp => chmod ug+r
Sur grp1 => chown grp1 et chmod u+rw et chmod g-rwx
Sur grp2 => chown grp2 et chmod u+rw et chmod g-rwx