HowTo: Υπηρεσία FTP που χρησιμοποιεί τη βάση δεδομένων MySQL

Παρά την αβεβαιότητα που μπορεί να περιβάλλει τη MySQL, προσωπικά προτιμώ ακόμα να δουλεύω με αυτό το DB από τη χρήση κάποιου άλλου. Δεν έχω τίποτα εναντίον της Postgre, απλά χρησιμοποίησα τη MySQL για μια ζωή και μέχρι τώρα δεν είχα κανένα λόγο να επανεξετάσω τη χρήση του.

Αυτή τη φορά θα σας διδάξω πώς να εγκαταστήσετε έναν διακομιστή FTP, αλλά όχι μόνο αυτό, θα σας διδάξω με έναν όχι τόσο περίπλοκο τρόπο, πώς να κάνετε χρήστες, κωδικούς πρόσβασης και άλλα δεδομένα χρήστη να αποθηκεύονται σε μια βάση δεδομένων MySQL και όχι σε λογαριασμούς τοπικός.

Γιατί αρέσει αυτό;

Απλό, επειδή κατά την δημιουργία αντιγράφων ασφαλείας, την επανεγκατάσταση ενός διακομιστή ή οποιασδήποτε άλλης σημαντικής αλλαγής, η μετακίνηση της υπηρεσίας θα ήταν τόσο απλή όσο η αντιγραφή ενός αρχείου διαμόρφωσης και η εξαγωγή της βάσης δεδομένων MySQL στο FTP.

Για να το επιτύχουμε αυτό θα χρησιμοποιήσουμε Pure-FTPdκαλά ... ας ξεκινήσουμε 🙂

Εγκατάσταση της υπηρεσίας FTP με Pure-FTPd

1. Το πρώτο πράγμα που πρέπει να κάνετε είναι να εγκαταστήσετε το πακέτο: pure-ftpd-mysql

Σε διανομές όπως Debian ή παράγωγα: εγκατάσταση aptitude pure-ftpd-mysql

2. Μόλις εγκαταστήσαμε, ξεκινήσαμε την υπηρεσία, αλλά πρέπει να την σταματήσουμε, για να την σταματήσουμε σε συστήματα όπως το Debian ή παράγωγα, αρκεί:

/etc/init.d/pure-ftpd-mysql stop

Ωστόσο, σας αφήνω μια γραμμή που θα σταματήσει την υπηρεσία ανεξάρτητα από τη διανομή που χρησιμοποιείτε:

ps ax | grep pure | grep -v grep | awk '{print $1}' | xargs kill

Εάν θέλετε να κατανοήσετε λεπτομερώς αυτήν τη γραμμή, διαβάστε αυτό το άρθρο

Προετοιμασία συνθηκών στο διακομιστή MySQL

Έχω ήδη εξηγήσει εδώ και πολύ καιρό πώς να δημιουργήσω μια βάση δεδομένων, έναν χρήστη και να παραχωρήσω σε αυτά τα δικαιώματα χρήστη στη βάση δεδομένων: Χρήστες και δικαιώματα στο MySQL

Ας προχωρήσουμε σε αυτό που θα κάνουμε εδώ; ...

1. Θα δημιουργήσουμε μια βάση δεδομένων ναι, αλλά πρώτα θα έχουμε πρόσβαση στη MySQL:

mysql -u root -p

Εδώ έβαλαν τον κωδικό πρόσβασης ρίζας και θα έχουν πρόσβαση στο τερματικό MySQL.

2. Μόλις μπείτε στη MySQL συνεχίζουμε να δημιουργούμε τη βάση δεδομένων myftpdb:

CREATE DATABASE myftpdb;

Παρατηρήστε το ερωτηματικό «;»Στο τέλος της γραμμής.

3. Τώρα θα δημιουργήσουμε τον χρήστη myftpuser και θα δώσουμε δικαιώματα χρήσης του χρήστη στη βάση δεδομένων που μόλις δημιουργήσαμε, αυτός ο χρήστης θα έχει ως κωδικό πρόσβασης myftppassword:

CREATE USER 'myftpuser'@'localhost' IDENTIFIED BY 'myftppassword';
GRANT ALL PRIVILEGES ON myftpdb.* TO 'myftpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;

4. Έτοιμοι, έχουμε δημιουργήσει τη βάση δεδομένων, τον χρήστη και θέσαμε τα δικαιώματα. Τώρα πρέπει να εισαγάγουμε την προεπιλεγμένη (ή καθαρή) βάση δεδομένων για να είναι πλήρης. Για να το κάνουμε αυτό, ας βγούμε πρώτα τη MySQL:

exit;

Τώρα ας κατεβάσουμε την προεπιλεγμένη βάση δεδομένων που σας προσφέρω:

Λήψη DB από προεπιλογή

Ή στο διακομιστή χρησιμοποιήστε την ακόλουθη γραμμή:

wget http://ftp.desdelinux.net/myftpdb.sql

Έτοιμοι, το έχουμε ήδη στον διακομιστή μας, τώρα απομένει μόνο η εισαγωγή των δεδομένων σας:

mysql -u root -p myftpdb < myftpdb.sql

Και έτοιμος!

Μπορούν επίσης να χρησιμοποιούν κάποια διαδικτυακή εφαρμογή όπως Διαχειριστής o PHPMyAdmin για να εισαγάγω τη βάση δεδομένων, την αφήνω να δοκιμάσει.

5. Και όλα αυτά είναι έτοιμα οι συνθήκες της MySQL μας.

Συμμετοχή στο FTP με MySQL

Λοιπόν, έχουμε ήδη εγκαταστήσει την υπηρεσία FTP, την υπηρεσία MySQL εγκατεστημένη και με το σύνολο βάσης δεδομένων μας ... τώρα χρειαζόμαστε, εγγραφείτε στην υπηρεσία FTP με MySQL.

1. Πρώτα πρέπει να κατεβάσουμε το αρχείο διαμόρφωσης που θα χρησιμοποιήσουμε για τα προαναφερθέντα. Στο τερματικό διακομιστή βάζουμε την ακόλουθη γραμμή:

cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd-mysql.conf

2. Τώρα ξεκινάμε την υπηρεσία FTP που της λέει να χρησιμοποιεί για έλεγχο ταυτότητας χρηστών MySQL και θα υποδείξουμε επίσης ποιο αρχείο διαμόρφωσης θα χρησιμοποιηθεί για σύνδεση στο MySQL:

pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf

Και voila 😀

Αυτό αρκεί για να εγκαταστήσουμε τον δικό μας διακομιστή FTP με έλεγχο ταυτότητας με βάση δεδομένων MySQL.

Αν θέλετε όποτε ο διακομιστής ξεκινά αυτόματα ξεκινά την υπηρεσία FTP, πρέπει να το βάλετε στο αρχείο /etc/rc.local τη γραμμή που χρησιμοποιούμε για την εκτέλεση του FTP, δηλαδή, βάζουμε /etc/rc.local Αυτό:

pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf

Παρεμπιπτόντως, μπορείτε να έχετε πρόσβαση στο FTP χρησιμοποιώντας οποιοδήποτε πρόγραμμα περιήγησης, καθώς και πελάτες FTP όπως το Filezilla ... και όχι μόνο αυτό, χρησιμοποιώντας προγράμματα περιήγησης αρχείων όπως το Nautilus, το Dolphin ή το PCManFM, μπορείτε επίσης να κατεβάσετε και να ανεβάσετε αρχεία 😀

Δοκιμάστε τον χρήστη που βρίσκεται στη βάση δεδομένων

Όνομα Χρήστη: testuser

Σύνθημα: κωδικός πρόσβασης δοκιμής

Πώς να διαχειριστείτε τους χρήστες FTP;

Λοιπόν, δεδομένου ότι είναι μια βάση δεδομένων MySQL, όπως είπα παραπάνω ... αρκεί η χρήση του PHPMyAdmin ή του Διαχειριστή. Απλώς χρησιμοποιήστε την αγαπημένη σας εφαρμογή για να διαχειριστείτε τη βάση δεδομένων, η οποία περιέχει έναν μόνο πίνακα: Χρήστες … Και σε αυτό είναι οι χρήστες, εδώ είναι ένα στιγμιότυπο οθόνης:

Εάν θέλετε να δημιουργήσετε έναν νέο χρήστη, μπορείτε να αντιγράψετε ή να κλωνοποιήσετε την υπάρχουσα γραμμή και να αλλάξετε τα δεδομένα που θα ήταν διαφορετικά μεταξύ των δύο χρηστών, εδώ σας δείχνω ένα στιγμιότυπο οθόνης:

Λοιπόν ... τίποτα περισσότερο για να προσθέσετε 🙂

Ελπίζω ότι αυτό είναι χρήσιμο για εσάς και γνωρίζετε, τυχόν ερωτήσεις ή προτάσεις με ενημερώστε.

αφορά

PD: Σε αυτό το σεμινάριο χρησιμοποιούμε κωδικούς πρόσβασης που είναι αποθηκευμένοι στη βάση δεδομένων σε απλό κείμενο, εάν θέλετε περισσότερη ασφάλεια, σας προτείνω να δοκιμάσετε md5 😉


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   LiGNUxer dijo

    ΠΟΛΥ ΚΑΛΑ!!! Πριν από μερικές εβδομάδες το έκανα αυτό, αλλά με το vsftpd και δεν είμαι πεπεισμένος, γι 'αυτό θα το δοκιμάσω για να δω πώς είναι. Ευχαριστώ

    1.    KZKG ^ Γκάρα dijo

      Σας ευχαριστούμε φίλος.
      vsftpd Δεν θυμάμαι πότε ήταν η τελευταία φορά που το χρησιμοποίησα ... θα είναι μερικά χρόνια τώρα, ... αν το χρησιμοποιούσα ποτέ HAHA. Προς το παρόν με το PureFTPd είμαι πολύ χαρούμενος 😀

  2.   κατάλληλος dijo

    Πολύ καλό συμβολή!

    1.    KZKG ^ Γκάρα dijo

      Ευχαριστώ compa 😀
      Κάνετε ό, τι μπορείτε lol ....

  3.   Φύλακας υπολογιστών dijo

    Ωχ, ενδιαφέρον ... δώσε μου την IP του DB που θέλω να έχω αυτήν τη συλλογή χρηστών και κωδικών πρόσβασης 😉

    Μην είσαι κακός, φίλε

    1.    KZKG ^ Γκάρα dijo

      Δεν κατάλαβα hehehe… για τι IP και DB μιλάτε;
      Αν εννοείτε ότι αυτά τα δεδομένα που έβαλα στο σεμινάριο θα μπορούσαν επίσης να βρίσκονται σε διακομιστή, ναι, έχετε δίκιο ... βρίσκονται σε υπηρεσία FTP σε εικονικό υπολογιστή στο φορητό υπολογιστή μου, έχει ΠΟΛΥ καλό τείχος προστασίας (iptables) λοιπόν ... HAHAHAHAHA φυσικά μην είσαι κακός LOL !!!

  4.   Φύλακας υπολογιστών dijo

    Joroña τι joroña…. Θα είναι πιο περίπλοκο από ό, τι φαίνεται να εκμεταλλεύεται κάποια ευπάθεια και να συλλαμβάνει αυτά τα δεδομένα 😉

  5.   Αλγκάμπε dijo

    Πολύ ενδιαφέρον!! 🙂

    1.    KZKG ^ Γκάρα dijo

      Σας ευχαριστώ
      Αυτό προσπαθώ να μας διαφοροποιήσει από τους υπόλοιπους ιστότοπους ... που προσπαθούμε να μην βάλουμε τόσα νέα αλλά ως τεχνικά άρθρα 😀

  6.   Γκίσκαρντ dijo

    Πόσο γρήγορα συγκρίνεται αυτό με το Samba; (μόνο τοπικό δίκτυο)

    1.    LiGNUxer dijo

      ότι το samba και το ftp είναι 2 διαφορετικά πράγματα, το ftp είναι ένα σοβαρό πρωτόκολλο και smb μόνο για να διευκολύνει την κοινή χρήση μεταξύ win και linux.
      Αν ψάχνετε για απόδοση στο δίκτυο, χρησιμοποιήστε μια υπηρεσία FTP, διαφορετικά χρησιμοποιήστε το samba χωρίς προβλήματα

      1.    KZKG ^ Γκάρα dijo

        Ακριβής.
        Ας πούμε ότι το FTP είναι λίγο πιο σοβαρό από το Samba, τουλάχιστον κατά τη γνώμη μου.

        Δεν έχω κάνει καθόλου σημεία αναφοράς, αλλά ίσως το FTP είναι λίγο πιο γρήγορο.

        1.    Γκίσκαρντ dijo

          Ευχαριστώ. Χρησιμοποιώ το Samba έτσι ώστε από την κονσόλα Wii (χρησιμοποιώντας το wiimc) να βλέπω ταινίες και σειρές που κατεβάζω στον υπολογιστή μου. Αλλά το wiimc μπορεί επίσης να συνδεθεί σε έναν διακομιστή ftp. Χρησιμοποίησα το Samba επειδή ήταν το πιο εύκολο, αλλά πάντα με ενθουσίαζε αν θα ήταν πιο γρήγορο με το ftp. Θα πρέπει να δοκιμάσω.

          1.    KZKG ^ Γκάρα dijo

            Λοιπόν, θα μπορούσατε επίσης να τοποθετήσετε απλώς το Apache στον υπολογιστή σας και έτσι το Wii θα συνδεθεί, πρέπει να είναι πιο γρήγορο από το samba ... και πολύ πιο απλό να διαμορφωθεί από το FTP 😀

          2.    Γκίσκαρντ dijo

            Το wiimc (ένα Wii Media Player) δέχεται μόνο συνδέσεις Samba και FTP.

  7.   Ανώτατος χάλυβας dijo

    Εξοχος. Απλώς χρειάζεστε κάτι σε αυτούς τους τύπους άρθρων (και στον ιστότοπο γενικά) για να κάνετε τα πάντα τέλεια. ένα πρότυπο CSS για να μπορείτε να εκτυπώσετε τα άρθρα σε PDF ή σε χαρτί.

  8.   LiGNUxer dijo

    Δεν ξέρω αν θα είναι δικό μου, αλλά το μεγάλο πρόβλημα με αυτό είναι ότι οι χρήστες μπορούν να περάσουν από όλους τους καταλόγους ακόμα και αν τους δώσω έναν συγκεκριμένο κατάλογο όπως "/ var / www / user_site" εάν συνδέονται μέσω ftp αυτοί έχουν πρόσβαση σε οπουδήποτε από τον υπολογιστή μου ¬
    αυτό δεν είναι πολύ ασφαλές χαχα

  9.   LiGNUxer dijo

    ΕΔΩ ΕΙΝΑΙ!!!
    Για να αποτρέψουμε την πρόσβαση των χρηστών που δημιουργούμε σε ολόκληρο το σύστημά μας, πρέπει να προσθέσουμε την παράμετρο "-A" κατά την εκκίνηση του καθαρού ...

    Αυτό που προσθέτουμε στο /etc/rc.local που βάζετε στο σεμινάριο είναι αυτό
    pure-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    και πρέπει να το αντικαταστήσετε με αυτό το άλλο:
    pure-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    Εκτιμάται; ... Αυτή η νέα γραμμή έχει την παράμετρο -A για να περιορίσει τον κατάλογο μόνο στον οποίο τον αντιστοιχίζουμε και τίποτα άλλο, μπορεί να δημιουργήσει αλλά δεν μπορεί να ανεβεί επίπεδο.

    D: αυτό το χαριτωμένο καθαρό fptd

    1.    KZKG ^ Γκάρα dijo

      Ευχαριστώ για την συμβουλή 😀

  10.   Ρομπέρτο dijo

    Γεια σας, είναι δυνατή η εφαρμογή ποσοστώσεων σε αυτήν την εφαρμογή MySQL και FTP, αυτήν τη στιγμή έχω έναν διακομιστή ftp με vsftpd και δεν έχω κανένα πρόβλημα με τις ποσοστώσεις, αλλά είμαι εικονικός χρήστης (δημιουργήθηκε στο mysql) θα ισχύουν οι ποσοστώσεις; και το δεύτερο είναι όπου αποθηκεύονται τα αρχεία που ανεβάζουν οι χρήστες, δηλαδή οι κατάλογοι κάθε χρήστη.

    1.    KZKG ^ Γκάρα dijo

      Θεωρητικά μπορείτε να εφαρμόσετε ποσοστώσεις, στην πραγματικότητα η βάση δεδομένων έχει τα πεδία που δημιουργήθηκαν για αυτό και το αρχείο διαμόρφωσης της υπηρεσίας FTP έχει τα ερωτήματα που έχουν οριστεί για αυτό, το οποίο στην πραγματικότητα δεν το έχω δοκιμάσει 😉

      Σχετικά με το πού θα τοποθετούσαν οι χρήστες τα αρχεία, το ορίζετε στο 5ο πεδίο, δείτε το στιγμιότυπο οθόνης https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg

  11.   Ρομπέρτο dijo

    Σας ευχαριστώ πολύ για το σχόλιό σας, πρόκειται να δοκιμάσω αυτό το σύστημα σε έναν δοκιμαστικό διακομιστή και να σχολιάσω τα αποτελέσματα, ελπίζω ότι μπορώ επειδή είναι μια εξαιρετική μέθοδος για να τακτοποιήσετε τα πάντα και με ένα RAID έχετε ένα σταθερό αντίγραφο ασφαλείας σύστημα: Δ.

    1.    KZKG ^ Γκάρα dijo

      Ευχαριστώ για το σχόλιο 🙂

  12.   Ρομπέρτο dijo

    Έχω μια ερώτηση, έχω ήδη καταφέρει να εγκαταστήσω το pure-ftp με mysql και ποσοστώσεις, το ζήτημα τώρα είναι πώς μπορώ να αναστείλω έναν λογαριασμό από τον ίδιο τον πίνακα mysql, χωρίς να τροποποιήσω τον κωδικό πρόσβασης χρήστη ή τα μεταφορτωμένα αρχεία.

    1.    KZKG ^ Γκάρα dijo

      Μπορώ να σκεφτώ δύο τρόπους, ο απλούστερος είναι να αλλάξω την αξία του Κατάσταση από το 1 έως το 0, θεωρητικά εάν είναι στο 0 ο λογαριασμός είναι απενεργοποιημένος, δοκιμάστε αυτό και πείτε μου 🙂

  13.   Μπίρκοφ dijo

    Roberto, πώς καταφέρατε να ορίσετε τα τέλη χρησιμοποιώντας αυτήν την εγκατάσταση; Παρακαλώ μοιραστείτε τις πληροφορίες.
    Πολύ καλή είσοδος !!

    1.    Ρομπέρτο ​​Σοτέλο dijo

      Birkhoff, ακριβώς στο προσωπικό μου blog δημιούργησα ένα θέμα σχετικά με αυτό, αφήνω τον σύνδεσμο για να το ελέγξετε:

      http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/

  14.   klaus dijo

    Χαιρετισμοί:

    Προσπαθώ να ακολουθήσω τα πάντα, αλλά παίρνω το σφάλμα 501 και πάνω απ 'όλα για να αναφερθώ στο γεγονός ότι ο κωδικός πρόσβασης είναι λανθασμένος όταν ξέρω ότι είναι εντάξει