Server/FTP

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen

Installation

Mit grafischer Oberfläche:

apt-get install gadmin-proftp

kann aber auch über Konfigurationsdatei eingestellt werden.


Konfiguration

vim /etc/proftpd/conf.d/custom.conf
# Ftp user doesn't need a valid shell
<Global>
   RequireValidShell off
</Global>
# If desired turn off IPv6
UseIPv6 off
# Default directory is ftpusers home
DefaultRoot ~ ftpuser
# Limit login to the ftpuser group
<Limit LOGIN>
   DenyGroup !ftpuser
</Limit>

Nutzer anlegen

Für den FTP Zugriff wird ein eigener Benutzer erstellt, ohne gültiger Login Shell und mit dem Homeverzeichnis /var/www/upload:

$ adduser ftpuser --shell /bin/false --home /var/www/upload
Adding user `ftpuser' ...
Adding new group `ftpuser' (1001) ...
Adding new user `ftpuser' (1001) with group `ftpuser' ...
Creating home directory `/var/www/upload' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
[...]

Anonymous Account

Um einen anonymen Lesezugriff zu erlauben wird folgende Datei erstellt:

$ vim /etc/proftpd/conf.d/anon.conf
<Anonymous ~ftpuser>
       User    ftp
       Group   ftp
       # Users can also login with ftp
       UserAlias       anonymous       ftp
       # All files belong to ftp
       DirFakeUser on ftp
       DirFakeGroup on ftp
       RequireValidShell       off
       MaxClients      10
       <Directory *>
               <Limit WRITE>
               DenyAll
               </Limit>
       </Directory>
</Anonymous>

Um den Anonymous Account auch Schreibrechte zu geben muss foldesinder Datei geändert werden:

<Anonymous ~ftpuser>
       [...]
       <Directory *>
               <Limit WRITE>
               AllowAll
               </Limit>
       </Directory>
</Anonymous>

Ausserdem muss das Schreibrecht für die Gruppe auf das Verzeichnes gesetzt werden:

chmod -R 775 upload/

Damit der Benutzer ftp auf den anonymen FTP-Bereich zugreifen darf, muss er der Gruppe ftpuser hinzugefügt werden:

$ adduser ftp ftpuser
Adding user `ftp' to group `ftpuser' ...
Adding user ftp to group ftpuser
Done.