Uit ons GreenLab: een nieuw systeem met nieuwe mogelijkheden

Bij Greenhost maken wij voor onze servers zeer veel gebruik van Linux. Linux is een volwassen open source besturingssysteem. Dat betekent dat alle onderdelen van het systeem die onder de motorkap zitten, de zogenaamde broncode, publiekelijk toegankelijk zijn. Iedereen kan eraan sleutelen en zijn of haar verbeteringen voorstellen aan de oorspronkelijke programmeurs. Zij schatten vervolgens die aanpassingen op waarde. Op die manier ontstaat rondom software-projecten vaak een grote community, die de kwaliteit van de software waarborgt, verbeteringen voorstelt of fouten opspoort.

Bij het opzetten van een diverse hostingomgeving kiezen wij voor open source software omdat wij die zelf kunnen aanpassen. In een perfecte wereld zouden we natuurlijk het liefst software gebruiken waaraan geen enkele aanpassing meer nodig is, software die naadloos aansluit op onze wensen. Maar de wereld is niet perfect en soms moeten we creatief zijn om inherente beperkingen van software te overwinnen. Een voorbeeld daarvan is een nieuw bestandssysteem dat we bij Greenhost hebben ontwikkeld met behulp van Fuse (Filesystem in userland).

Bestandssystemen, ook wel filesystems genoemd, werken in Linux volgens het traditionele user-group model. Elk bestand kan maar één eigenaar hebben en behoren tot een enkele groep. Voor een standaard hostingpakket is dat voldoende. U kunt inloggen met (S)FTP en bestanden uploaden en vervangen. Maar stel nu eens voor dat u meerdere gebruikers toegang wil geven tot uw bestanden, bijvoorbeeld uw webontwikkelaars. Dan moeten die gebruikers allemaal tot dezelfde groep behoren. Het beheer van rechten wordt dan ingewikkeld, want deze gebruikers kunnen elkaars bestanden alleen aanpassen wanneer de groep-rechten goed staan ingesteld. Maar ook kunnen gebruikers nu bestanden aanmaken op uw account die u als de hoofdbeheerder zelf niet meer kan verwijderen! Het is ook niet mogelijk om verschillende ontwikkelaars toegang tot verschillende directories te geven.

Om een flexibelere manier te hebben om met deze problemen om te gaan, ontwikkelden wij een filesystem waarin de rechten op directories in een database worden opgeslagen. U kunt via ons service centrum gebruikers toevoegen met rechten tot op het niveau van een subdomein. Deze gebruikers kunnen met hun eigen wachtwoord inloggen op de (s)ftp server, maar u bent de erfgenaam van elke aanpassing die zij maken. De webmaster blijft eigenaar van de bestanden. Zowel de eigenaar als de rechten worden automatisch juist ingesteld. Het systeem maakt het zelfs mogelijk om dezelfde gebruiker toegang te geven tot verschillende domeinen onder verschillende hostingpakketten die u bij Greenhost heeft. Ook kunt u subdomeinen nu gebruiken als mappen waarin derden bestanden kunnen uploaden. Stel u wilt uw familie toegang geven tot een foto-archief, maar niet de rest van uw site. Dan maakt u een subdomein foto.domeinnaam.nl aan en geeft u een gebruiker rechten op dit domein. In de toekomst zouden we ons bestandssysteem verder kunnen uitbreiden zodat bijvoorbeeld uw MySQL databases per (S)FTP toegankelijk zijn en nog veel meer dingen die we verzinnen.

Dit systeem is momenteel live, maar in een beta fase. Wij stellen het in eerste instantie beschikbaar voor onze professionele klanten op aanvraag. Het is een voorbeeld van het geslaagd gebruik maken van open source technologie. Wij hebben aan de broncode van de Fuse-bibliotheek die wij gebruikten (libfuse-ruby) flink wat gesleuteld. Onze aanpassingen hebben wij natuurlijk teruggestuurd naar de oorspronkelijke ontwikkelaar. Nu maar afwachten of ze ook in de officiële versie zullen verschijnen…