Linuxos FTP szerver? Naná!

Wired to FTPLehet, hogy már kezd nevetségessé válni az én linux-debian mániám, de láthatjátok, hogy rengeteg célfeladatra kiváló teljesítményt és minőséget nyújt.

Tehát arról van szó, hogyha egy dedikált ftp szervert szeretnénk üzemeltetni akkor lehet okosabb dolog lenne adatbázisban tárolni a júzerek adatait.

Az ftpd és mysql-re fog az egész épülni. Hajrá, kezdjünk neki:

apt-get install pure-ftpd-mysql mysql-server mysql-client

Létre kell hozni csoportot és egy felhasználót a rendszerben:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c “pureftpd user” -g ftpgroup ftpuser

Jelentkezzünk be parancssorból mysql-be:
mysql -u root -p

Adjuk meg a root jelszót, aztán végezzük el az alábbi parancsokat:
GRANT SELECT ON ftpd.* TO vhosts@localhost IDENTIFIED BY ‘mypasswd’;
FLUSH PRIVILEGES;
CREATE DATABASE ftpd;
USE ftpd;

CREATE TABLE users (
user varchar(30) NOT NULL,
password varchar(64) NOT NULL,
home varchar(128) NOT NULL,
bandwidth_limit_upload smallint(5) NOT NULL default 0,
bandwidth_limit_download smallint(5) NOT NULL default 0,
ip_allow varchar(15) NOT NULL default ‘any’,
quota smallint(5) NOT NULL default ‘0’,
quota_files int(11) NOT NULL default 0,
active enum(‘yes’,’no’) NOT NULL default ‘yes’,
PRIMARY KEY (user),
UNIQUE KEY User (user)
) TYPE=MyISAM;

INSERT INTO users (user, password, home) VALUES (‘username’, MD5(‘mypasswd’), ‘/home/username’);

quit;

Most létrehoztuk a szükséges táblákat és egy próbarekordot, amit majd később esetleg módosíthatunk.

Futtassuk ezeket:
echo “” >> /etc/pure-ftpd/db/mysql.conf

Szerkesszük a fent kiürített file-t:
pico /etc/pure-ftpd/db/mysql.conf

Másoljuk be az alábbi sorokat a megnyitott szerkesztőbe:
MYSQLSocket /var/run/mysqld/mysqld.sock

MYSQLUser vhosts
MYSQLPassword mypasswd
MYSQLDatabase ftpd
MYSQLCrypt md5
MYSQLDefaultUID 2001
MYSQLDefaultGID 2001
MYSQLGetPW SELECT password FROM users WHERE user = “\L” AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MYSQLGetDir SELECT home FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MySQLGetBandwidthUL SELECT bandwidth_limit_upload FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MySQLGetBandwidthDL SELECT bandwidth_limit_download FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MySQLGetQTASZ SELECT quota FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)
MySQLGetQTAFS SELECT quota_files FROM users WHERE user = “\L”AND active = “yes” AND (ip_allow = “any” OR ip_allow LIKE “\R”)

Végezzünk el néhány beállítást ismét:
echo “yes” > /etc/pure-ftpd/conf/DontResolve
echo “yes” > /etc/pure-ftpd/conf/ChrootEveryone

Ha nem tetszik az alapértelmezett 21-es port akkor meg lehet változtatni:

echo “port” > /etc/pure-ftpd/conf/Bind

Ha tűzfal van és gondok adódnak a csatlakozással (passzív mód) érdemes megadni az ftpd-nek a port range-t:

echo “porttól portig” > /etc/pure-ftpd/conf/PassivePortRange

pl.: echo “29799 29899” > /etc/pure-ftpd/conf/PassivePortRange, tehát nem kell a két portszám közé se kötőjel, se semmi, csak szóköz.

 

Ha mindennel végeztünk újraindítjuk az ftpd szervert:
/etc/init.d/pure-ftpd-mysql restart

 

Ha nem szeretnénk szívni később parancssori mysql-el a felhasználók menedzselését illetőleg telepítsük fel az alábbi csomagokat:

aptitude install apache2
aptitude install php5 libapache2-mod-php5

apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json
apt-get install phpmyadmin

/etc/init.d/apache2 restart

 

Ezek után a http://szerver-ip-címe/phpmyadmin címen tudunk a mysql root felhasználóval bejelentkezni és az ftpd táblában ügyködni.

Fontos! Ha jelszót viszünk be ne felejtsünk el md5 kódolást beállítani!

Biztonsági mentés debianon

Backup_center_iconKomplett webszerver költöztetésekor adódott a kérdés, hogy tényleg – hogy is kellene lementeni a komplett linux rendszert működés közben. Legegyszerűbb és legnagyszerűbb megoldás tar.gz-vel becsomagolni.

Mentés készítése

tar –exclude=/var/run –exclude=/var/tmp –exclude=/dev –exclude=/mnt –exclude=/proc –exclude=/tmp –exclude=/sys –exclude=/var/backups/full_backup  -czpvf /var/backups/full_backup/full_backup.tar.gz /

Az –exclude=…-ban megadott könyvtárak tömörítésből kihagyásra kerülnek (mert amúgy feleslegesek).

Visszaállítás, kicsomagolás

cd /
tar -xvf /var/backups/full_backup/full_backup.tar.gz

 

A megoldásért köszönet Lukács István kollégámnak! 🙂

NTFS partíció csatolása debian renszerbe

ntfs-1Szenvedtem vele egy sort, amikor ezzel a módszerrel próbálkoztam:

mount /dev/sdxy  /mnt/akarmi

 

Működni működik, lehet olvasni a meghajtót. De aztán szükség esetén kiderül, hogy csak olvasásra csatolódik fel az ntfs meghajtó. Ahhoz, hogy tudjuk írni – kell egy kicsit maszekolni is.

Első körben, egyszeri alkalommal toljuk fel az ntfs-3g csomagot

apt-get install ntfs-3g

aztán:

mount -t ntfs-3g /dev/sdxy   /mnt/akarmi

Hangfelismerő program Chrome-ban – tud magyarul!

speak-nowVolt egy egyetemi projektmunkánk, ami arról szólt, hogy egy közösségi oldalt terveztünk, dokumentáltunk és valamennyire le is implementáltunk. A konzulensünk külön kérése volt, hogy legyen benne egy fordítóprogram.

Tehát írok én valamit az egyik oldalon pl magyarul és a másik meg angolra lefordítva megkapja azt. Aztán még egy plusz kérés volt, hogy ne csak gépelni lehessen, hanem beszélni is lehessen a gépnek, tehát az pl gombnyomásra képes legyen értelmezni a vartyogásunkat és képes legyen úgy fordítani, stb, stb…

A lényeg az, hogy egy tök egyszerű megoldást sikerült találnunk, ami csak Google Chrome alatt megy, de rendkívül egyszerűen üzembe helyezhető és nem terheli a szervereinket sem.

Tehát egy külső Third-party cuccról van szó. Egy <input>-ba rakható bele Chrome specifikus paraméter, aminek forrása így néz ki:

<input size="50" type="text" id="uzenet" name="uzenet" 
placeholder="Írj üzenetet" lang="hu-HU" accesskey="r" 
x-webkit-speech  speech required /> 
 
 
 
Majd így működik/jelenik meg: 7bc4a95ad46377736319c0dc393d9374

Az input jobb oldalában lévő mikrofonocskára klikkelve előidézhetjük a kívánt hatást. 🙂

Enjoy