Sinds kort draai ik op m'n OpenSUSE machine pure-ftpd als FTP deaemon.
Daar ben ik erg tevreden mee, het is een fijne makkelijke doch krachtige FTP server.
Maarrr... nu wil ik graag meerdere gebruikers op dezelfde map "chrooten".
m.a.w. ik heb een map "/srv/ftp/" en wil meerdere users daar op laten uitkomen als ze inloggen op de FTP. Voor zover ik weet "chroot" een FTP server onder *NIX een user standaard op basis van zijn of haar "home directory" i.e. "/home/pietjepuk/./"
Echter (en dit is ook meteen een vraag..) kan je volgens mij niet meerdere users dezelfde home directory laten hebben. Yast doet in iedergeval moeilijk daarover en met "useradd" kreeg ik ook problemen als ik dit forceerde.
Dit wil ik oplossen met virtual users, echter als je deze virtual users koppelt aan een systeem user hebben ze allemaal dezelfde rechten. Ik heb geprobeerd een virtual user ook te koppelen aan een group om dat op te lossen: (dit kan ook volgends de documentatie van pure-ftpd)
je moet verplicht ook aan een user koppelen. Vervolgens laten chrooten op de map waar enkel de group zou matchen met de virtual user:
Zo zou ik "gewone gebruikers" kunnen matchen met "ftpgroup" (en deze rechten hierop) en "beheerders" laten matchen met de gebruiker "ftpadmin" (en de rechtern die deze gebruiker heeft)
Maar.... dat pakt ie dus niet. pure-ftpd virtual users "zien" helemaal geen rechten van groepen. Het gaat blijkbaar enkel om het user id en de groups id ziet pure-ftp niet. (geen lees rechten, krijg je dan bij inloggen...nou dit staan er toch echt...)
En ik snap dat dus niet....waarom kan je dan groepen koppelen aan virtual users als je er vervolgens geen hol mee kan??
Hieronder heb ik virtual user "martin" gekoppeld aan "ftpgroup" die leesrechten heeft.
Als ik de user laat matchen met de virtual user dan werkt het weer wel...
Voor de volledigheid hieronder de virtuale user "martin":
Ik zit nu een beetje vast....
Heeft iemand een suggestie?
Daar ben ik erg tevreden mee, het is een fijne makkelijke doch krachtige FTP server.
Maarrr... nu wil ik graag meerdere gebruikers op dezelfde map "chrooten".
m.a.w. ik heb een map "/srv/ftp/" en wil meerdere users daar op laten uitkomen als ze inloggen op de FTP. Voor zover ik weet "chroot" een FTP server onder *NIX een user standaard op basis van zijn of haar "home directory" i.e. "/home/pietjepuk/./"
Echter (en dit is ook meteen een vraag..) kan je volgens mij niet meerdere users dezelfde home directory laten hebben. Yast doet in iedergeval moeilijk daarover en met "useradd" kreeg ik ook problemen als ik dit forceerde.
Dit wil ik oplossen met virtual users, echter als je deze virtual users koppelt aan een systeem user hebben ze allemaal dezelfde rechten. Ik heb geprobeerd een virtual user ook te koppelen aan een group om dat op te lossen: (dit kan ook volgends de documentatie van pure-ftpd)
code:
1
| pure-pw useradd pietjepuk -u ftpuser -g ftpgroup -d /srv/ftp |
je moet verplicht ook aan een user koppelen. Vervolgens laten chrooten op de map waar enkel de group zou matchen met de virtual user:
code:
1
2
3
4
| drwxr--r-- 4 ftpadmin ftpgroup 96 2007-02-21 18:06 apps/ -rwxr--r-- 1 ftpadmin ftpgroup 86 2006-05-21 05:06 .bash_history* drwxr--r-- 3 ftpadmin ftpgroup 72 2007-02-21 17:42 images/ drwxr--r-- 6 ftpadmin ftpgroup 144 2007-02-16 00:52 media/ |
Zo zou ik "gewone gebruikers" kunnen matchen met "ftpgroup" (en deze rechten hierop) en "beheerders" laten matchen met de gebruiker "ftpadmin" (en de rechtern die deze gebruiker heeft)
Maar.... dat pakt ie dus niet. pure-ftpd virtual users "zien" helemaal geen rechten van groepen. Het gaat blijkbaar enkel om het user id en de groups id ziet pure-ftp niet. (geen lees rechten, krijg je dan bij inloggen...nou dit staan er toch echt...)
En ik snap dat dus niet....waarom kan je dan groepen koppelen aan virtual users als je er vervolgens geen hol mee kan??
Hieronder heb ik virtual user "martin" gekoppeld aan "ftpgroup" die leesrechten heeft.
code:
1
2
3
4
5
6
7
8
9
10
11
| 230-User martin has group access to: 1000 33 16 230 OK. Current directory is / Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 229 Extended Passive mode OK (|||42473|) 150 Accepted data connection 226-Sorry, we were unable to read [.] 226-Options: -a -l 226 0 matches total ftp> |
Als ik de user laat matchen met de virtual user dan werkt het weer wel...
Voor de volledigheid hieronder de virtuale user "martin":
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Login : martin Password : $2a$07$97Tqm7918suBpU/JKl05Ou0ot0yiHc90UOsRLnwfhwELOqHI8ggAu UID : 1008 (ftpuser) GID : 1000 (ftpgroup) Directory : /srv/ftp/./ Full name : Download bandwidth : 0 Kb (unlimited) Upload bandwidth : 0 Kb (unlimited) Max files : 0 (unlimited) Max size : 0 Mb (unlimited) Ratio : 0:0 (unlimited:unlimited) Allowed local IPs : Denied local IPs : Allowed client IPs : Denied client IPs : Time restrictions : 0000-0000 (unlimited) Max sim sessions : 0 (unlimited) |
Ik zit nu een beetje vast....
Heeft iemand een suggestie?