vsftpd: ftp root schrijfbaar maken

Na de blogpost “vsftpd met virtual users uit text file” kreeg ik nog een aantal vragen over vsftpd. Dat resulteerde onder andere in een oplossing voor het gebruik van symlinks.

Een ander probleem wat naar voren is gekomen is dat vsftpd in versie 2.3.5 (welke door veel distributies gebruikt wordt) het niet toe laat om te schrijven in de ftp root directory van een user. Zo heeft de user “user1” de volgende map als zijn ftp root /srv/ftp/user1/, user1 mag dan wel schrijven in /srv/ftp/user1/data maar mag niet schrijven in de ftp root zelf.

In vsftpd 3 zit een optie genaamd allow_writeable_chroot waarmee het wel mogelijk is. Echter zouden we versie 3 dan zelf moeten compileren. Gelukkig heeft de community een versie gemaakt van 2.3.5 waar de allow_writeable_chroot optie wel in zit. Deze gaan we dan ook installeren.

  1. Allereerst hebben we (mogelijk) een extra package nodig voor de volgende stap:
    sudo apt-get install python-software-properties
  2. Door bovenstaande kunnen we het volgende doen (dit voegt een repository toe):
    sudo add-apt-repository ppa:thefrontiergroup/vsftpd
  3. De lokale database met packages moet vervolgens bijgewerkt worden:
    sudo apt-get update
  4. Als we nu de aanpaste vsftpd willen installeren krijg je een melding dat deze reeds geïnstalleerd is, daarom moet je de huidige eerst verwijderen:
    sudo apt-get remove vsftpd
  5. Hierna kan je de aangepaste versie installeren:
    sudo apt-get install vsftpd
  6. Nu moet alleen de configuratie van vsftpd nog aangepast worden:
    sudo echo 'allow_writeable_chroot=YES' >> /etc/vsftpd.conf

    Let op de dubbele “groter dan”-tekens >>. Een enkel “groter dan”-teken zal de gehele configuratie overschrijven!

  7. Hierna alleen nog even vsftpd herstarten:
    sudo service vsftpd restart

Nu is het mogelijk voor de users om in hun ftp root te schrijven!

Leave a Reply

Your email address will not be published. Required fields are marked *