Знадобилося мені організувати простенький FTP сервер. Мені не потрібні були ні які заморочки із групами і правами. Треба було просто щоб користувач “Vasya” мав можливість копіювати, та й власне робити все що завгодно із файлами лише у своїй теці /var/www/vasya, а користувач “Petro” – відповідно у своїй теці /var/www/petro. Ну і щоб Вася не лазив до файлів Петра і навпаки. Порившись трохи в Інтернеті, виявилося що існує маса утиліт для створення FTP сервера. Найперше я натрапив на популярний сервер під назвою proftpd, який мене задовольнив, тому і опишу установку і налаштування останнього.
Ставимо FTP сервер та обираємо тип запуску “standalone” (самостійно):
> apt-get install proftpd-basic |
Тепер щодо користувачів. Вини можуть бути двох типів: реальними і віртуальними. Реальні користувачі це такі самі користувачі ядра Linux, як скажімо admin, root, або user – вони реєструються безпосередньо в операційній системі Linux мають власні права, доступ, тощо. Паролі і конфігурація яких також зберігається у файлах ядра. Про віртуальних користувачів знатиме ж лише FTP сервер proftpd, і з операційною системою вини працюватимуть лише від імені якогось (як правило одного) вже існуючого у системі користувача. Даний механізм є зручним якщо потрібно дати доступ багатьом користувачам одночасно, і плодити системних користувачів не є доцільним.
Для роботи з віртуальними користувачами, в кінець конфігураційного файлу /etc/proftpd/proftpd.conf додамо стрічку, яка повідомляє, що для авторизації (пам’ятає пароль і налаштування) користувачів буде застосовуватись файл ftpd.passwd:
AuthUserFile /etc/proftpd/ftpd.passwd |
ОС Linux працює з користувачами за їхнім user ID. Ми створимо віртуальних користувачів “Vasya” і “Petro”, які працюватимуть від імені щойно встановленого користувача proftpd. Дізнаємось ID користувача proftpd, та ID групи:
> id proftpduid=106(proftpd) gid=65534(nogroup) groups=65534(nogroup) |
Створюємо користувача “Vasya” (аналогічно і користувача “Petro“), де вказуємо отриманий user ID (106), ID групи (65534) та адресу домашньої теки (/var/www/vasya/):
> ftpasswd –passwd –file=/etc/proftpd/ftpd.passwd –name=vasya –shell=/bin/false –home=/var/www/vasya/ –uid=106 –gid=65534 |
Щоб наші віртуальні користувачі “Vasya” і “Petro” лазили лише по своїм домашнім текам, і не вище, не забуваємо також додати стрічку “DefaultRoot ~” у файл конфігурації, який матиме наступний остаточний вигляд:
Перезавантажуємо сервіс:
> service proftpd restart |
Все, починаємо заливати фали 🙂
Пару зручних команд. Пакет ProFTPD має декілька утиліт, які корисні для моніторингу роботи вашого FTP-сервера:
ftpcount – виводить число підключених в даний момент клієнтів.
ftpdctl – управляє запущеним сервером proftpd.
ftptop – аналог команди top для процесів proftpd.
ftpwho – виводить список підключених до сервера користувачів.
ftpshut – дозволяє виконати зупинку всіх запущених proftpd-серверів в зазначений час (аналог системної команди shutdown).
При написанні даної нотатки я підглядав тут:
– http://www.artcom-ufa.ru/posts/2011/05/19/ustanovka-i-nastroika-proftpd
– http://amsand.narod.ru/articles/proftpd.html
– http://www.thomas-krenn.com/en/wiki/Setup_FTP_Server_under_Debian