Sinds een tijdje gebruik ik Proftpd als FTP-server op mijn linux bak.
Ik zit echter met het volgende dillema:
Een bepaalde users-group, laten we zeggen 'testgroep' mag inloggen.
Deze groep mag files uploaden en downloaden, maar alleen zelfgeplaatste files verwijderen.
Verder zouden users van de groep 'testgroep' wél directorys binnen directorys van andere users aan mogen maken, en deze weer verwijderen.
Nu heb ik de volgende config bedacht voor deze directory:
De dir 'testdrive' heeft de volgende rechten toegewezen:
drwxrwxr-x
user: bas
group: testgroep
bas is lid van testgroep.
Een bestand aangemaakt door user 'bas' via de FTP krijgt de volgende rechten:
-rw-r-----
user: bas
group: testgroep
Nu is het probleem: de andere users kunnen deze file via de FTP verwijderen!!
Volgens de rechten zou dit dus niet mogelijk moeten zijn, immers de groep-rechten zijn begrensd tot lezen...
Ik ben al de hele middag bezig met FAQ's en manuals doorspitten, heb al een aantal veranderingen doorgevoerd (zoals de Umask voor files én dirs defineren), maar het mocht niet baten...
Wie o wie heeft een logische verklaring, en liefst een mooie oplossing
Edit: Ik heb een logische verklaring gevonden: als ik de maprechten verander voor de groep naar 'r-x' werkt het wel, echter dan kunnen deze users dus ook geen files meer uploaden...
Nader onderzoek leerde mij dat de maprechten bepalen of je bestanden mag plaatsen of verwijderen, waarbij dus plaatsen en verwijderen beide als 'w' wordt gezien. Ik wil wél kunnen plaatsen, maar níet verwijderen, mits je de user bent die de file geplaatst heeft (owner dus).
Dit schijnt te kunnen met een sticky-bit, en inderdaad, als ik die met chmod instel werkt het. Echter, nieuw gemaakte directory's worden gefabriceerd zonder zo'n bitje, waardoor users weer andermans bestanden kunnen verwijderen... help!!
Ik zit echter met het volgende dillema:
Een bepaalde users-group, laten we zeggen 'testgroep' mag inloggen.
Deze groep mag files uploaden en downloaden, maar alleen zelfgeplaatste files verwijderen.
Verder zouden users van de groep 'testgroep' wél directorys binnen directorys van andere users aan mogen maken, en deze weer verwijderen.
Nu heb ik de volgende config bedacht voor deze directory:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <Directory /mnt/testdrive>
AllowOverwrite on
Umask 0027 0007
GroupOwner testgroep
DirFakeUser off
DirFakeGroup off
<Limit READ WRITE DIRS>
AllowGroup testgroep
DenyAll
</Limit>
</Directory> |
De dir 'testdrive' heeft de volgende rechten toegewezen:
drwxrwxr-x
user: bas
group: testgroep
bas is lid van testgroep.
Een bestand aangemaakt door user 'bas' via de FTP krijgt de volgende rechten:
-rw-r-----
user: bas
group: testgroep
Nu is het probleem: de andere users kunnen deze file via de FTP verwijderen!!
Volgens de rechten zou dit dus niet mogelijk moeten zijn, immers de groep-rechten zijn begrensd tot lezen...
Ik ben al de hele middag bezig met FAQ's en manuals doorspitten, heb al een aantal veranderingen doorgevoerd (zoals de Umask voor files én dirs defineren), maar het mocht niet baten...
Wie o wie heeft een logische verklaring, en liefst een mooie oplossing
Edit: Ik heb een logische verklaring gevonden: als ik de maprechten verander voor de groep naar 'r-x' werkt het wel, echter dan kunnen deze users dus ook geen files meer uploaden...
Nader onderzoek leerde mij dat de maprechten bepalen of je bestanden mag plaatsen of verwijderen, waarbij dus plaatsen en verwijderen beide als 'w' wordt gezien. Ik wil wél kunnen plaatsen, maar níet verwijderen, mits je de user bent die de file geplaatst heeft (owner dus).
Dit schijnt te kunnen met een sticky-bit, en inderdaad, als ik die met chmod instel werkt het. Echter, nieuw gemaakte directory's worden gefabriceerd zonder zo'n bitje, waardoor users weer andermans bestanden kunnen verwijderen... help!!
[ Voor 42% gewijzigd door Bazz0847 op 31-05-2006 01:07 ]
Maker van de HeatMeister (voorheen HeatBooster) ventilatorsturing