SlimFTPd: Config Anonymous

Anonymous user configuration.

For the majority of Internet users, FTP’s real power is transparent. At the click of a link, they can initiate an FTP server download; these users are anonymous never needing to provide a user name and password.

This part of the tutorial covers using SlimFTPd for anonymous user access. It is extremely easy to set up, provide a user profile with user name set to “anonymous” with a blank password and restrict access to read as shown to the right.

<User "anonymous"> 
  Password ""
  Mount / Some folder  
  Deny /All
  Allow / Read
</User>

That essentially completes this part of the tutorial! If you are interested in a little more detail or want to run some examples read on.

Anonymous user profile 1

I have a folder containing wave music files and would like to make these downloadable from a web page. The anonymous user profile has the following format:

Add the user profile on the right to the end of SlimFTPd’s configuration file.

C:\uc_slimftpd_tutorial\slimftpd.conf

<User "anonymous">
  Password ""
  Mount / C:/uc_slimftpd_tutorial/uc_tskill/wav
  Deny /All
  Allow / Read
</User>


  1. Stop (uc_kill_process.bat) and re-start SlimFTPd (SlimFTPd.exe) this forces configuration changes to take effect.
  2. Type ftp://localhost into your browser address bar.
  3. You will receive a 550-error list permission denied, not surprising because allow was set to read only.

Note: For testing you can allow listing (Allow / Read List). This will allow you to see what’s mapped into the server root. Its not a security issue most download sites allow full listings it’s your site your choice.

Simple test file

All test pages are contained in folder C:\uc_slimftpd_tutorial\uc_tskill hence no need to create these. To run and html page double click on its file name it will be displayed in your browser.

Links:

The page contains two links:

href="ftp://localhost/boom_x.wav"
href="ftp://localhost/explosion_x.wav"

Note: The mount command has mapped the wav folder into the server root.
This is why there are no sub-folders specified in the link construction.

 

  C:\uc_slimftpd_tutorial\uc_tskill\test_pages\test1.html: check.bat  

<html>
<head>
<title>Test1 Page</title>
</head>
<body>
Download test:<br>
<a href="ftp://localhost/boom_x.wav">Download My music 1</a><br>
<a href="ftp://localhost/explosion_x.wav">Download My music 2</a>
</body>
</html>

Run the page (double click on test1.html), click on either of the links and your browser will offer you the choice to either play (open) or save the file to disk.

Top

Anonymous user profile 2

Matching my music files I have a range of CD cover images. These are large images contained in a separate folder; I would like to make these download-able.

Modify SlimFTPd’s configuration as shown in bold.

Note: I have added Allow List so you can see what is listed in the root.

<User "anonymous">
  Password ""
  Mount / C:/uc_slimftpd_tutorial/uc_tskill/wav
  Mount / C:/uc_slimftpd_tutorial/uc_tskill/images 
  Deny /All
  Allow / Read List
</User>

  1. Stop (uc_kill_process.bat) and re-start SlimFTPd (SlimFTPd.exe) this forces configuration changes to take effect.
  2. Type ftp://localhost into your browser address bar.
  3. Your browser displays the FTP servers root content.
  4. BIG PROBLEM what happened to the wav files?.

Problem: At first sight the logic looks sound, map the folders across, they contain different file formats that will not conflict. In reality you may be mapping large folders across that do contain identical file names, hence the last folder listed is mapped to prevent conflicts.

Solution: For this simple case you could copy all the images into the wave file folder. However consider the consequence you have just doubled your image disk space. Earlier I mentioned these images were large now pop out and buy a new disk. The next example offers an alternative solution.

Top

Anonymous user profile 3

Adding sub-folders to the server root will resolve the above problem. You can use the same name as the folders being mapped e.g. wav and images or use alternative names top_ten_music blockbuster_images.

Modify SlimFTPd’s configuration as shown in bold.

Note: The permissions of the root sub-folders top_ten_music and blockbuster_images inherit the root folders permissions "Allow / Read List".

<User "anonymous">
  Password ""
  Mount /top_ten_music C:/uc_slimftpd_tutorial/uc_tskill/wav
  Mount /blockbuster_images C:/uc_slimftpd_tutorial/uc_tskill/images
  Deny /All
  Allow / Read List
</User>

  1. Stop (uc_kill_process.bat) and re-start SlimFTPd (SlimFTPd.exe) this forces configuration changes to take effect.
  2. Type ftp://localhost into your browser address bar.
  3. Your browser displays the FTP servers root content, no files however there are two folders:
    top_ten_music and blockbuster_images

Illusion: Well the user sees folders that do not exist on your disk.

Fine control: The sub-folders inherit privileges from the root folder “/” hence if for whatever reasons you want to prevent images being listed you can target that sub-folder and deny listing for example Deny /blockbuster_images List

Test file:

All test pages are contained in folder C:\uc_slimftpd_tutorial\uc_tskill hence no need to create these. To run just double click on the file name it will be displayed in your browser.

Links:

The page contains four links:

href="ftp://localhost/top_ten_music/boom_x.wav
href="ftp://localhost/top_ten_music/explosion_x.wav
href="ftp://localhost/blockbuster_images/users.gif"
href="ftp://localhost/blockbuster_images/setup.gif

Note: The mount command has created new sub-folders top_ten_music and blockbuster_images our real folder wav and images have been mapped into these respectively.

 

  C:\uc_slimftpd_tutorial\uc_tskill\test_pages\test1.html: check.bat  

<html>
<head>
<title>Test2 Page</title>
</head>
<body>
Download test:<br>
<a href="ftp://localhost/top_ten_music/boom_x.wav">Download My music 1</a><br>
<a href="ftp://localhost/top_ten_music/explosion_x.wav">Download My music 2</a><br>
<a href="ftp://localhost/blockbuster_images/users.gif">Download My image 1</a><br>
<a href="ftp://localhost/blockbuster_images/setup.gif">Download My image 2</a>
</body>
</html>

Run the page (double click on test2.html).

  1. Click on either of the music links and your browser will offer you the choice to either play (open) or save the file to disk.
  2. Click the image links these will most likely display the image however if you right click and save they are downloaded as an FTP transfer.

Top

Email like address

After adding an anonymous user profile it is no longer possible to easily access individual accounts using a browser (user name password login pop-up not accessible).

An FTP server automatically logs into the anonymous account when its domain name is used for access. Individual accounts are accessible using their full FTP address, these look similar to an email address and have the following format:

ftp://username@ftp_domain_name e.g. http://fred@uniserver.com

FTP addresses for testing as follows:

  1. ftp://localhost/ - Access anonymous account
  2. ftp://ric@localhost/ - Individual account
  3. ftp://dave@localhost/ - Individual account
  4. ftp://john@localhost/ - Individual account

Note: When using individual accounts you will notice a reduced login pop-up requires only a password.

Summary

That concludes this tutorial; I hope you found it of some use! The tutorial's FTP server as you have seen is a fully functioning stand-alone server and can be used independently of Uniform Server.

The server example using virtual hosts is important. A variant of it can be used when using SlimFTPd as a plugin.

The next page covers plugins for Uniform Server 3.5-Apollo and Uniform Server 3.3.

Top


  Ric