Tot i alguna certa incertesa que pugui rondar a MySQL, personalment segueixo preferint treballar amb aquesta DB a fer servir alguna altra. No tinc res contra Postgre, simplement he fet servir de tota una vida MySQL, i fins ara no he tingut motius per replantejar el seu ús.
Aquesta vegada els ensenyaré a instal·lar un servidor, però no només això, els ensenyaré d'una forma no tan complexa, com fer que els usuaris, contrasenyes i altres dades dels usuaris siguin guardats en una base de dades MySQL, i no en comptes locals.
¿Per què fer això així?
Simple, perquè a l'hora de fer un backup, reinstal·lar un servidor o qualsevol altre canvi significatiu, moure el servei seria tan simple com copiar un fitxer de configuració, i exportar la base de dades MySQL referent a l'FTP.
Per aconseguir això farem servir Pure-FTPd, Bé ... comencem 🙂
Instal·lació de l'servei FTP amb Pure-FTPd
1. El primer que hem de fer és instal·lar el paquet: pure-ftpd-mysql
En distros com Debian o derivats: aptitude install pure-ftpd-mysql
2. Un cop instal·lat, se'ns va iniciar el servei però hem de detenir-lo, per detenir-lo en sistemes com Debian o derivats n'hi ha prou amb:
/etc/init.d/pure-ftpd-mysql stop
No obstant això, els deixo una línia que s'aturarà el servei sense importar la distro que facin servir:
ps ax | grep pure | grep -v grep | awk '{print $1}' | xargs kill
Preparant condicions al servidor MySQL
Ja vaig explicar fa no gaire com crear una base de dades, un usuari i donar-li permisos a aquest usuari a la base de dades: Usuaris i permisos en MySQL
Passem a què farem aquí? ...
1. Crearem una base de dades sí, però primer accedim a MySQL:
mysql -u root -p
2. Un cop dins de MySQL passem a crear la base de dades myftpdb:
CREATE DATABASE myftpdb;
3. Ara crearem l'usuari myftpuser i li donarem permisos a usi usuari sobre la base de dades que recentment vam crear, aquest usuari tindrà com a password myftppassword:
CREATE USER 'myftpuser'@'localhost' IDENTIFIED BY 'myftppassword';
GRANT ALL PRIVILEGES ON myftpdb.* TO 'myftpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;
4. A punt, ja vam crear la base de dades, l'usuari i vam establir els permisos. Ara hem d'importar la base de dades per defecte (o neta) perquè això estigui complet. Per a això primer sortim de MySQL:
exit;
Ara descarreguem la base de dades per default que els ofereixo:
O bé al servidor usin la següent línia:
wget http://ftp.desdelinux.net/myftpdb.sql
Llest, ja la tenim al nostre servidor, ara només queda importar les seves dades:
mysql -u root -p myftpdb < myftpdb.sql
I llest!
5. I això és tot per tenir a punt les condicions del nostre MySQL llistes.
Unint FTP amb MySQL
Bé, ja tenim el servei FTP instal·lat, el servei MySQL instal·lat i amb la nostra base de dades posada ... ara només falta, unir el servei FTP amb MySQL.
1. Primer hem de descarregar l'arxiu de configuració que farem servir per a la qual abans marcat. A la terminal de l'servidor posem la següent línia:
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd-mysql.conf
2. Ara iniciem el servei FTP indicant-li que faci servir per autenticar usuaris MySQL, ia més li indicarem un arxiu de configuració usar per connectar-se a MySQL:
pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
I llest 😀
Això és suficient per instal·lar el nostre propi servidor FTP autenticant amb una base de dades MySQL.
Si desitgen que mentre el lloc s'iniciï automàticament s'iniciï el servei FTP, han de posar a l'arxiu /etc/rc.local la línia que fem servir per executar el FTP, és a dir, posem en /etc/rc.local això:
pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
Per cert, podran accedir a l'FTP usant qualsevol navegador, així com clients FTP com Filezilla ... i no només això, usant navegadors d'arxiu com Nautilus, Dolphin o gestor de fitxers pcman també podran baixar arxius i pujar-los 😀
Usuari de prova que està a la base de dades
Usuari: testuser
clau: testpassword
Com administrar els usuaris de l'FTP?
Bé, tenint en compte que és una base de dades MySQL, com vaig dir a dalt ... usant PHPMyAdmin o Adminer en tindran prou. Simplement utilitzin la seva aplicació preferida per administrar la base de dades, la qual conté una sola taula: usuaris ... i en ella es troben els usuaris, aquí els deixo un screenshot:
Si desitgen crear un nou usuari, poden duplicar o clonar la línia existent i canviar les dades que serien diferents entre ambdós usuaris, aquí els mostro un screenshot:
Espero això els sigui d'utilitat i ja saben, qualsevol dubte o suggeriment me la deixen saber.
Salutacions
PD: En aquest tutorial fem servir contrasenyes guardats a la base de dades en text pla, si desitgen més seguretat els recomano provin amb md5 😉
MOLT BO !!! Fa un parell de setmanes vaig estar instal·lant això però amb vsftpd i no m'acabo de convèncer així que vaig a provar això a veure que tal aquesta. gràcies
Gràcies amic.
vsftpd no recordo quan va ser l'última vegada que el vaig fer servir ... faran alguns anys ja, ... si és que alguna vegada ho vaig fer servir JAJA. De moment amb PureFTPd camino més que content 😀
Molt bona aportació!
Thanks companyia 😀
Es fa el que es pot jejeje ....
Uuumm, interessant ... Pásame la ip de la BD que vull tenir aquesta recopilació d'usuaris i contrasenyes a mà 😉
Do not be evil, man
No vaig entendre jejeje ... de què IP i DB parles?
Si et refereixes a que aquestes dades que vaig posar en el tutorial podrien estar així mateix en un servidor, SIP aquí tens raó ... estan en un servei FTP en un PC virtual en el meu portàtil, aquesta té un MOLT bon tallafocs (iptables) per la qual cosa ... hahahahaha clar que do not be evil LOL !!!
Joroña que joroña .... serà més complicat del que sembla aprofitar alguna vulnerabilitat i capturar aquestes dades 😉
'Molt interessant !! 🙂
gràcies
Això és el que intento que ens diferenciï de la resta de llocs ... que nosaltres intentem posar no tant notícies sinó com articles tècnics 😀
Què tan ràpid és això pel que fa a Samba? (Xarxa local només)
que samba i ftp són 2 coses diferents, ftp és un protocol de debò i smb només per facilitar la compartició entre win i linux.
Si busques rendiment a la xarxa utilitza un servei de FTP en cas contrari utilitza samba nomes sense problemes
Exacte.
Diguem que FTP és un tant més seriós que Samba, a l'almenys al meu entendre així ho és.
No he fet benchmarks ni de bon tros, però potser FTP sigui una mica més ràpid.
Gràcies. Jo ús Samba perquè des del meu consola Wii (usant wiimc) pugui veure pelis i sèries que descàrrec a la compu. Però wiimc també es pot connectar a un servidor ftp. Jo vaig fer servir Samba perquè era el més fàcil, però sempre em va intrigar si seria més ràpid amb ftp. Hauré de provar.
Bé, també podries muntar simplement Apache al teu PC, i així el Wii es connectaria, aquest ha de ser més ràpid que samba ... i moltíssim més simple de configurar que FTP 😀
El wiimc (un Wii Media Player) només accepta connexions Samba i FTP.
Excel·lent. Només li fa falta alguna cosa a aquest tipus d'articles (i a el lloc en general) per quedi tot perfecte; una plantilla CSS per poder imprimir els articles a PDF o en paper.
No se si serà a mi sol, però el gran problema amb això és que els usuaris poden recórrer tots els directoris per mes que li dono un directori específic com «/ var / www / sitio_usuario» si es connecten per ftp tenen accés a qualsevol lloc de la meva pc ¬¬
no és molt segur això jaja
ACA AQUESTA !!!
Per evitar que els usuaris que creem puguin navegar per tot el nostre sistema cal agregar-li el paràmetre «-A» a l'llançar el puré ...
O sigui el que afegim a l'/etc/rc.local que poses al Estatut és això
pure-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf
i cal reemplaçar-lo per això altre:
pure-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf
S'aprecia? ... Aquesta nova línia porta el paràmetre -A per restringir-directori només a què li assignem i res mes, pot crear però no pot pujar de nivell.
D: aquesta valent pur-FPTD
Gràcies pel tip 😀
Hola és possible implementar quotes en aquesta implementació de MySQL i FTP, jo actualment tinc un servidor ftp amb vsftpd i no tinc cap problema amb les quotes, però a l'ésser un usuari virtual (creat el mysql) seran vàlides les quotes? i el segon és on s'emmagatzemen els archvios enviats pels usuaris, és a dir quins són els directoris de cada usuari.
En teoria sí que es poden implementar quotes, de fet la base de dades té els camps creats per a això, i l'arxiu de configuració de l'servei FTP té posada les consultes per això, el que en realitat no he provat això 😉
Sobre l'on els usuaris posarien els arxius, el defineixes al 5è camp, mira l'screenshot: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg
Moltes Gràcies pel teu comentari, vaig a provar aquest sistema en un servidor de prova i comento els resultats, tant de bo es pugui per que és un gran mètode per tenir tot ordenadito, i amb un RAID tens un sistema de backup estable: D.
Gràcies a tu pel comentari 🙂
Tinc una pregunta, ja he aconseguit instal·lar pure-ftp amb mysql i quotes, el tema ara és com puc suspendre un compte des de la pròpia taula mysql, sense modificar la seva contrasenya usuari o fitxers enviats.
Se m'ocorren dues formes, la més simple és canviar-li el valor de Estat d'1 a 0, en teoria si està en 0 el compte està desactivada, prova això i em dius 🙂
Roberto, com vas aconseguir posar les quotes usant aquesta instal·lació? Si us plau socialitza la informació.
Molt bona entrada !!
Birkhoff, justament en el meu bloc personal creï un tema sobre això, et deixo el link perquè el revisis:
http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/
Salutacions:
Estic tractant de seguir tot però m'apareix error 501 i mes que tot fer referència al fet que el password és incorrecte quan es que aquesta bé