Kedves Barátaim!
Végül sikerült megoldanom a problémát. Remélhetőleg bennem volt a hiba, amiért csak ilyen nehezen tudtam összehozni a dolgot, de ha mégsem hát leírom miképpen jutottam eredményre.
A megoldás feltételezi, hogy van a szerveren MySql, vagy más adatbázis szerver!
Általános beállítások, melyeket a proftpd.conf-ban érdemes beállítani:
ServerName "FTP Server"
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 10
User nobody
# Nálam mindegyik hozzáférést az alábbi könyvtár egy alkönyvtárába akarom kiadni, ezért csak ide adok írási jogot.
AllowOverwrite on
# Mindenki az alapértelmezett könyvtárába lép be.
DefaultRoot ~
# Mindenkinek az alapértelmezett könyvtára a gyökérkönyvtár, tehát ennél feljebb nem jut.
DefaultChdir ~
# Nincs szükség valós héjra a műveletekhez.
RequireValidShell off
# Nem kellenek a /etc/ftpusers fájlban szereplő felhasználók.
UseFtpUsers off
Az alábbi dolgokat is a
proftpd.conf-ban kell beállítani, azonban ezek kifejezettem az SQL kapcsolatra vonatkoznak.
# Az SQL kapcsolat kiépítéséhez szükséges információk
SQLConnectInfo adatbázis@szervernév:port felhasználónév jelszó
# SQL autentikáció bekapcsolása
SQLAuthenticate on
# A jelszavak a táblákban egyszerű szövegként fognak szerepelni. Beállítható titkosítás is, de most nekem nem kellett. Ehhez az adatbázishoz úgyis csak a root és az ftp szerver felhasználója fér hozzá, azok is csak localhoston.
SQLAuthTypes Plaintext
# Beállítom az alapértelmezett Linux uid és gid értékeket. Én nobody értékét használom ami nálam a 65534-es. Ezt le lehet kérni konzolban az id felhasználónév paranccsal.
SQLDefaultUID 65534
SQLDefaultGID 65534
Az
adatbázisban hozzuk létre az alábbi táblákat. Kialakítható eltérő szerkezet is, de az akkor jelezni kell a proftpd.conf-ban.
CREATE TABLE IF NOT EXISTS `groups` (
`groupname` varchar(30) NOT NULL,
`gid` int(11) NOT NULL,
`members` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `users` (
`userid` varchar(30) NOT NULL,
`passwd` varchar(80) NOT NULL,
`uid` int(11) default NULL,
`gid` int(11) default NULL,
`homedir` varchar(255) default NULL,
`shell` varchar(255) default NULL,
UNIQUE KEY `userid` (`userid`),
UNIQUE KEY `uid` (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- Felveszek néhány felhasználót példaként:
INSERT INTO `users` (`userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`) VALUES
('user1, 'pass1', NULL, NULL, '/var/www/domain1', '/dev/null'),
('user2', 'pass2', NULL, NULL, '/var/www/domain2', '/dev/null'),
('user3', 'pass3', NULL, NULL, '/var/www/domain2/subdir', '/dev/null');
Még egyszer köszönöm mindenkinek a segítséget.
Üdvözlettel
kjaron