Skip to main content

vsftp: anomymous can upload but not download

This bug seems to be here from a long time. Even if a patch exists, the bug is still here in the most recent version.
Here is the resolution (I assume gcc is installed):


  1. Stop your vsftpd daemon: service vsftpd stop
  2. Download the lastest source package (vsftpd-2.0.5 so far) from http://vsftpd.beasts.org.
  3. gunzip and untar

    # gunzip vsftpd-2.0.5.tar.gz
    # tar xf vsftpd-2.0.5.tar
    # cd vsftpd-2.0.5

  4. A couple of files must be changed

    1. postlogin.c, line 1831

      Replace


      ...
      if (p_sess->is_anonymous && tunable_chown_uploads)
      {
      vsf_sysutil_fchmod(new_file_fd, 0600);
      if (tunable_one_process_model)
      {
      ...

      by

      ...
      if (p_sess->is_anonymous && tunable_chown_uploads)
      {
      vsf_sysutil_fchmod(new_file_fd, (0666 & ~tunable_anon_umask));
      if (tunable_one_process_model)
      {
      ...


    2. tunable.c, line 129,130


      Replace


      /* -rw-rw-rw- */
      unsigned int tunable_file_open_mode = 0666;

      by

      /* -rw------- */
      unsigned int tunable_file_open_mode = 0600;


    3. builddefs.c, line 9


      Replace


      #undef VSF_BUILD_TCPWRAPPERS

      by

      #define VSF_BUILD_TCPWRAPPERS


    4. vsf_findlibs.sh


      This script doesn't work on 64 bits systems.
      I added


      [ `uname -m` == "x86_64" ] && LIB=lib64 || LIB=lib

      at the begining, and I replaced all
      locate_library /lib/ by
      locate_library /$LIB/
      and echo "/lib/libpam.so.0"; (line 17)
      by echo "/$LIB/libpam.so.0";

  5. Compile: make
  6. Replace /usr/sbin/vsftpd by the new version
  7. Restart your vsftpd daemon: service vsftpd start


Tested on RedHat Enterprise Linux 4 (32 and 64 bits)

Comments

Popular posts from this blog

Drive replacement for Fostex DMT8-vl

The IDE hard drive on my Fostex DMT8-vl multitrack recorder shows signs of its imminent death; when getting hot, I could not record anymore. Must be said this drive comes from an old Sun Station, and has been replaced because I/O failures were detected by Solaris. It worked at least 5 years in my recorder: not so bad. However, time is now to replace it. The DMT8-vl is not able to handle drives bigger than 8.4 GB. Well, it is able to (the current drive is 15 GB), but only 8.4 GB will be usable. My tought was to use a 8 GB CompactFlash; having no moving parts means no noise, which is quite temptating for a music recording device. I purchased a CompactFlash-IDE adapter on the internet (8$) and I had to build a male-male IDE cable adapter (4$). Unfortunately, this doesn't work. The drive is correctly discovered by the operating system, which proposes to format it ("format IDE?"). After answering "yes", the formating runs pretty fast (faster than on a real drive), ...

My journey with ATtiny4313 (part 1)

Introduction The context For a personal project, I want to program an Atmel ATtiny4313 microcontroller. I use microcontrollers for several years, but not on a regular basis (maybe 3-4 times a year), mostly for testing and generally with a deceptive result. But failure isn't the best training? This article aims to share my errors and success, as well as being a personal log. The project The project is to replace the main board of a Soundpool MO4, a MIDI OUT extension for the Atari ST; details here . Overall, the project is pretty simple: reading the parallel port and copy verbatim the data to MIDI out. This is the reason behind my choice of this particular microcontroller, since it embeds an USART and has an 8 bits parallel port (20 pins DIP package). The MO4 having 4 MIDI Outs, I will use 4 ATTiny4313, one for each out; this is actually cheaper than finding a 4-channel USART. Each microcontroller must determine if the data present on the parallel port shoul...

Samba: Clients get "system error 1223" (or 123) after a server reboot

Facts: a Linux+Samba server shares anonymously a folder. After a reboot, Win clients could not attach the share drive anymore. C:\>net use \\mylinux\folder Enter the user name for 'mylinux': System error 1223 has occurred. The operation was canceled by the user. C:\>net view \\mylinux\ System error 123 has occurred. The filename, directory name, or volume label syntax is incorrect. The process are present, and tcpdump doesn't provide much information. What's going on? After hours of headscratching, the light came: the firewall was on and no rules for the Samba protocol! Grrr!