I denna guide kommer jag förklara hur man installerar ftp-servern pure-ftpd på en Raspberry Pi. I detta exemplet har jag använt mig av Raspbian som OS men det fungerar säkert bra med ett annat Debian-liknande OS också.
Vi börjar med att uppdatera pakethanteraren och därefter installerar vi programmet.
sudo apt-get update
sudo apt-get install pure-ftpd-common pure-ftpd
Nu ska vi skapa en linux-grupp i Raspbian som vi döper till ”ftpgroup”.
sudo groupadd ftpgroup
Nu skapar vi en virtuell linux-användare som vi kopplar till gruppen. Denna användare får ingen hemkatalog eller shell. Användaren döps till ”ftpuser”.
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Nu skapar vi en ftp-användare som kopplas till den virtuella användaren och gruppen som vi redan skapat. Användaren döper vi till ”haschel”. Vi väljer här att ”/home/pubftp/haschel” är användarens root-katalog och han kommer inte kunna komma högre upp i katalogstrukturen.
Här måste man också se till att mapparna pubftp och haschel finns uppskapade under hemkatalogen.
sud0 pure-pw useradd haschel -u ftpuser -g ftpgroup -d /home/pubftp/haschel -N 10
Flaggan ”-N 10” säger att användaren får en gräns på 10mb diskutrymme på sitt ftp-konto. Du kommer här få välja vilket lösenord du vill ha på användaren.
För att sätta rättigheter på denna katalog så att t.ex. gruppen ska ha rätt att skriva till mappen kan man göra såhär:
chown ftpuser /home/pubftp/haschel -R
Ftp-användare i programmet pure-ftpd sparas normalt sett här: /etc/pureftpd.passwd
Genom att köra nedan kommando så uppdateras användarna och läggs i en databasfil. Detta måste göras varje gång användare har ändrats, tagits bort eller lagts till.
sudo pure-pw mkdb
Databasen är egentligen bara en binär fil som är sorterad och har nycklar så att man snabbt hittar i den.
Nedan kommando listar de användare du har i din ftp-användar-databas:
sudo pure-pw list
För att få detaljerad information om en viss användare, t.ex. en användare som heter ”haschel” kör nedan:
sudo pure-pw show haschel
Nollställ ett lösenord för en ftp-användare med följande kommando:
sudo pure-pw passwd haschel
Glöm då som sagt för allt i världen inte bort att uppdatera databasen:
sudo pure-pw mkdb
Servern har nu förmodligen redan startat av sig själv så för att vara på den säkra sidan bör du först stoppa den:
sudo /etc/init.d/pure-ftpd stop
Därefter kan du kolla om du hittar några processer för pure-ftpd som fortfarande körs. Kolla speciellt efter ftp-port 21.
sudo netstat -tulpn
Hittar du några processer så kan du döda dem med detta fina kommando där {pid} är id-numret på processen (daemonen) som du vill döda.
sudo kill {pid}
När allt är lugnt på port 21 så ska du kunna starta upp servicen som en daemon med följande kommando där vi också specificerat att användare ska hämtas från databasen vi jobbat med i tidigare steg här i guiden:
sudo pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -B -8 UTF-8 -O clf:/var/log/pure-ftpd/transfer.log -c 30 -C 10 -x -E -R
Kör gärna ”sudo pure-ftpd -help” för att se vilka olika flaggor du kan ha på detta kommando.
Det där var allt som krävdes för att installera en ftp-server på en Raspberry Pi. Nu är det bara att testa att koppla upp sig mot ftp-servern med lämplig ftp-klient.
Vill man se till så att tjänsten startar upp med samma parametrar varje gång så bör man ändra konfigurationsfilerna för pure-ftpd enligt följande upplägg:
Restarting ftp server: Running: /usr/sbin/pure-ftpd -l pam -E -A -8 UTF-8 -B -O clf:/var/log/pure-ftpd/transfer.log -u 1000 -4 -B
Hej
Bra guide. Men jag har stött på problem.När jag ska köra detta commando
sudo pure-pw useradd haschel -u ftpuser -g ftpgroup -d /home/pubftp/haschel -N 10 så får jag detta som fel (sudo; pure-pw: command not found)
Vad är fel.?
Hej,
Låter som den inte hittar kommandot pure-pw. Du kanske måste ange hela sökvägen till detta kommando för att det skall fungera.
hej, skulle du kunna förtydliga ditt svar rasprob?
Hej,
Kolla om pure-pw finns bland de sökvägar som är indexerade på din Raspberry.
$ echo $PATH
$ echo $SHELL
Här kollar du sökvägen till pure-pw så du kan se att den faktiskt är installerad.
$ which pure-pw
Är pure-pw installerad men inte ligger bland de indexerade sökvägarna så kör du kommandot med hela sökvägen specificerad först. T.ex.:
/usr/local/sbin/pure-pw
Fick problem med just denna rad som finns här under
chown ftpuser /home/pubftp/haschel -R
katalogerna pubftp och haschel måste skapas.
sudo mkdir /home/pubftp
sedan
sudo mkdir /home/pubftp/haschel
Tack för förtydligandet. Skönt att det löste sig.
Det löste sig hyfsat. Det tog lite tid men vad ska man annars hitta på med hallonlådan 🙂 . Jag är absolut inte bombsäker på det jag googlat upp, men det verka funka efter jag gjort dessa grejer. Jag anslöt senare med ”Total commander”, fick jag problem igen. då fick jag göra nån slags sammankoppling av användarfilerna. Tack för en bra sida!
Sedan måste en samman läkning av användarfilerna ske.
sudo ln -s /etc/pure-ftpd/pureftpd.passwd /etc/pureftpd.passwd
sedan
sudo ln -s /etc/pure-ftpd/pureftpd.pdb /etc/pureftpd.pdb
sedan
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/PureDB