Jo sóc dels que els agrada innovar i conèixer coses noves, fa no gaire vaig haver de instal·lar i configurar un servidor FTP i vaig decidir fer-ho de forma diferent a com sempre ho feia.
En aquest cas vaig optar per un servei FTP amb usuaris virtuals, usuaris que estaran emmagatzemats en un fitxer xifrat (usuari, password, configuracions, etc), tot amb Pure FTPd.
Aquí us mostraré com fer-ho… bé, comencem
Primer que tot, especificar que les ordres d'aquest tutorial estan pensats per a distros com Debian o basades en elles, no obstant si algú fa servir una altra distro en el seu servidor ha d'instal·lar els mateixos paquets i usar les configuracions posades més baix, l'únic que necessita canviar és la comanda d'instal·lació.
1. Primer hem d'instal·lar Pure FTPd:
apt-get install pure-ftpd
Les acabarà l'output en alguna cosa com això:
2. El servei ja està activat, però no ens serveix de res si no ho hem configurat apropiadament, posem un fitxer de configuració extens però gairebé que és estàndard, conté el normal, establint que els usuaris anònims no són permesos, etc etc.
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf
3. Bé, suposem que la nostra carpeta de FTP és /var/www/ftp/ i desitgem crear un usuari que pugui pujar informació a la carpeta /var/www/ftp/sysadmin/ , posem el següent en una terminal:
pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/
Això vol dir el següent:
pure-pw: Comando que ens serveix per manipular usuaris de Pure-FTPd
useradd: Indiquem que afegirem un usuari
sysadmin: L'usuari que desitjo crear
-u 2001: UserID d'aquest usuari
-g 2001: GroupID d'aquest usuari
-d / var / www / ftp / sysadmin /: La carpeta que serà el home d'aquest usuari, és a dir, on pujarà les coses
A l'posar la línia anterior els preguntarà el password d'aquest usuari.
4. Ara heu de refrescar el fitxer de base de dades d'usuaris, per això entrem a la carpeta /etc/pure-ftpd/ (cd /etc/pure-ftpd) i posem a la terminal:
pure-pw mkdb
5. Ara hem d'iniciar Pure-FTPd però indicant-li que farem servir el fitxer d'usuaris virtuals, primer aturem el servei:
/etc/init.d/pure-ftpd stop
Després ens assegurarem que no s'iniciarà per defecte de forma normal:
chmod -x /etc/init.d/pure-ftpd
I ara iniciem el servei a la nostra manera:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
6. Si proveu usant una aplicació com Filezilla veureu que es poden connectar sense problemes amb l'usuari creat, però no podran copiar res o crear directoris, això és degut a que la carpeta /var/www/ftp/sysadmin/ (l'home de l'usuari segons l'exemple) no té els permisos apropiats, se solucionarà amb un:
chown -R 2001:2001 /var/www/ftp/sysadmin/
Recordeu, l'Uid i Gid 2001 és el de l'usuari que creem, el creem amb l'ordre a l'anterior pas 3
7. Per aturar el servei n'hi ha prou amb en aquesta mateixa terminal pressionar [Ctrl]+[C] o bé en una altra terminal fer-ne un:
killall pure-ftpd
Ara indicarem que el servei s'iniciarà automàticament amb el sistema quan el servidor iniciï, per això modifiquem l'arxiu /etc/rc.local i abans de l'última línia que diu «exit 0» posem la comanda amb el que vam iniciar el servei FTP:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
O sigui, ens quedaria així:
Poden editar el fitxer amb nano, vaig veure o el seu editor preferit, o si ho prefereixen copiïn i enganxin aquesta comanda que els facilitarà la feina:
perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local
… sí sí … com van llegir, «facilitar», és una ordre extensa sí, però és simplement substituir text amb perl i un inofensiu fet
8. Un cop fet això, reinicieu el servidor i veureu com ja el servei pure-ftpd està iniciat i llest per funcionar
Com eliminar usuaris?
Com els vaig dir abans, la comanda pure-pw és el que necessitem per manipular usuaris, per eliminar un usuari (per exemple, sysadmin) posem el següent:
cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb
Recordin que sempre que facin un canvi en algun usuari han de tornar a generar l'arxiu virtual de base de dades dels usuaris, es troba a / etc / pure-ftpd / i es genera / s'actualitza amb pure-pw mkdb
En fi amics / es crec que no hi ha molt més que afegir, convidar-los a que es llegeixin l'ajuda de pure-pw ja que ens permet moltes més coses que les que aquí els vaig mostrar (aquest és només un tutorial breu i gairebé bàsic).
Jo fa un o dos anys era dels que tot ho vinculava a OpenLDAP o MySQL, però amb el passar del temps em vaig adonar que tantes connexions a bases de dades que siguin servidors com a tal generen un consum que moltes vegades no ens podem permetre, per això l'ús d'alternatives completament viables com la d'usar bases de dades en fitxers propis de l'aplicació, com és aquest cas dels .pdb de Pure-FTPd
Qualsevol dubte o pregunta intentaré ajudar en tot el que pugui.
Salutacions i ... happy hacking!