<> ||<>|| == How to setup an ftp server with three possible options. What am I talking about? == There are three different ways to set up an ftp server: (1) * '''Anonymous FTP''' : People can access the server only with the anonymous account and without a password. Of course, the server administrator will set a limit for uploads to prevent users from putting illegal files like pirated music/films/games. (2) * '''FTP with both anonymous access and users with a passworded account''': This method lets both anonymous and passworded account users to enter the server. They will only have access to a specified directory, except for the user '''root''' who can view/modify/delete all files and/or folders. (3) *'''FTP with mysql support for virtual users authentication''' : This method allows access to the server only for some user groups that haven't got a virtual users authentication shell account on the system. It uses an external mysql server that stores user information. == First Option : Anonymous FTP == Before starting the creation of an anonymous ftp server, you have to add a user called ftp into your system, with a home directory too. This step is really easy, just follow these commands: {{{ useradd -d /home/ftp -s /bin/false ftp mkdir -p /home/ftp/upload }}} Doing this permits only this account to write in this folder. You can use more variables to specify what the ftp server will do. Here are some examples: * '''-e''' Allow access to the server only by anonymous users * '''-B''' Start the server with background demon * '''-i''' Anonymous users can't upload files * '''-M''' Let anonymous users create folders * '''-s''' ftp user files cannot be downloaded == Second Option : '''Both anonymous and passworded account users''' == To make it possible to have both anonymous and passworded account users in the same server, follow this small guide : * '''-B ,-i ,M, -r, -s''' same of before * '''-u ''' Enable users with a specified user id (uid) to access the server * '''-V ''' Only specified IPs will be able to access the server in non-anonymous mode == Third Option : '''Virtual Users with Mysql''' == To create a server with mysql support follow this steps : * Download and install '''User Manager for PureFTPd''' which you can find here http://machiel.generaal.net/index.php?subject=user_manager_pureftpd * Decompress it and upload all its contents into your web server www directory and then write on your browser this link link http://localhost/ftp/install.php * Follow all the steps that the installer asks to you * Copy and save rge pureftpd-mysql.conf into pureftpd user manager directory * Done. Access to the administration panel using this link http://localhost/ftp == More options to add before launch the server process == * '''-c ''' Max client that can connect to the server * '''-C ''' Max connections for a IP * '''-T ''' Max bandwitdh disponible for each connection * '''-n ''' Max MB that a user can have into its home folder * '''-m ''' Stops the anonymous uploads if the cpu loading exceed from this value Thats all. == See Also == * [[vsftpd]] - Very Secure File Transfer Protocol Daemon