vsftpd: refusing to run with writable root inside chroot()

GNU Linux Debian

W październiku aktualizowałem kilka systemu do nowego Debiana 7.0 (Wheezy). W 98% poszło bez większych problemów. Dzisiaj opowiem Wam o jednym z tych 2% przypadków, gdzie poszło coś nie tak.

Problem okazał się związany z vsftpd. Gdy mam pewność, że będzie tylko 1 użytkownik korzystał z FTP instaluję często proftpd, ale w przypadku gdy jest to serwer bardziej publiczny łatwiejszy w konfiguracji dla wielu użytkowników jest vsftpd.

Na pierwszy rzut oka wszystko działało poprawnie. Usługi wstały, wszystko pracowało. Do momentu pierwszego logowania Klienta. Wtedy serwer FTP zwracał następujący błąd:

OOPS: vsftpd: refusing to run with writable root inside chroot()

Pierwsza myśl. O co kaman? Gdy prześledzimy zmiany pomiędzy wersją 2.3.2 (squeeze), a wersją 2.3.5 (wheezy) zobaczymy, że autorzy na siłę chcieli nas uszczęśliwić:

Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.

Jak widzimy, nie tylko Państwo „wie” co dla nas lepsze. I trudno sobie wyobrazić, aby tworzyć konta użytkownikom bez umieszczania ich w chroot-cie.

Ale łatwo możemy sobie poradzić z tym problemem, ponieważ powstał odpowiedni fix w wersji 3, który wprowadza przełącznik allow_writeable_chroot. Szybki przepis:

Smacznego.