LinuxForum.Fans
Тема

Настройка proftpd под debian

Автор: kolesik 11 сообщений 9164 просмотров
#44097

debian, стоит на виртуальной машине через virtualbox, основная система-винда XP
посколку на этом debiane учусь ставить всяких демонов, на нем уже стоит и работает: ssh, mysql, php, apache
поставил proftpd, поковырял файл proftpd.conf
через total comander получается зайти на серв по ftp под анонимусом, ему нельзя ничего, даже скачивать

теперь вопросы
1. как создавать пользователей, которые могут только скачивать, которые могут заливать и изменять что либо на серваке?

2. правильно ли я понимаю что можно пойти 2мя способами: сделать локальных (что это вообще значит?) пользователей, а можно как то
завязаться с базой mysql, но я ее не знаю совсем =(

3. поскльку стоит апач с пхп хотелось бы протестить работу сайта, куда надо положить "страничку", что бы при заходе на "localhost" из под винды в браузере можно было увидеть ее?

#44103

1. Управляет изменением прав доступа к папкам и файлам =). Можно создать две группы: читающие и все_могу (это я абстрактно их так назвал =) ). После этого назначаем лежащему на фтп контенту соотвествующие права: 775 например. И принадлежать эти файлы должны кому-то из группы "все_могу".

Объясняю что значат цифры 775

7 - полные права для владельца (читать (4) + писать(2) + запускать на исполнение(1))
7 - полные права для группы
4 - все остальные могут только читать.

2. Вот тут все хорошо описано http://www.lissyara.su/articles/freebsd/programms/proftpd+mysql/
Не пугайтесь что там на FreeBSD настраивается. Конфиг и база будут идентичны. Они от платформы не зависят =)

#46661

Сори, ноя жесткий нуб в linux,
из предыдущего поста что-то понял. А действующий конфиг этого всего можно посмотреть? Сходил по ссылке, там завязка на mysql, а мне бы прописать пользователя в конфиге (((

С мускулем совсем не дружу, демоны ставлю только ради экспериментов и набора опыта

#46674

kolesik, в конфиге не прописываются пользователи. Вот рабочий конфиг с аккаунтами в ftpasswd

text
######################################################
#
# ProFtpd.conf
#
######################################################

# Имя сервера ServerName "Versta.NET FTP" ServerType standalone DefaultServer on ServerIdent off

AuthUserFile /etc/proftpd/ftpd.passwd AuthGroupFile /etc/proftpd/ftpd.group

# Запрещаем руту логиниться на фтп RootLogin off # Слушаем порт 21 (стандартный) Port 21 # Права на создаваемые файлы Umask 022

# Chroot-им всех пользователей. Нефига им по файловой системе лазить DefaultRoot ~

# Не проверяем валидность шелла. Всем подряд я шелл не даю, а на /bin/nologin ругается RequireValidShell off

User proftpd Group proftpd

TimeoutIdle 180 TimeoutLogin 120 TimeoutNoTransfer 360 TimeoutStalled 640

TransferLog /var/log/proftpd-tranfer.log SystemLog /var/log/proftpd-error.log

<VirtualHost films.versta.net> ServerName "Films virtualhost on versta.net"

Port 2121 MaxClients 5 MaxLoginAttempts 3

<Limit LOGIN> DenyAll </Limit>

<Anonymous /var/www/films/htdocs> <Limit LOGIN> AllowAll </Limit>

<Limit WRITE> AllowAll </Limit>

</Anonymous> </VirtualHost>

Для генерации файлика ftpasswd вам надо скачать утилиту (если у вас ее нет в системе) и дать ей права на исполнение

text

curl http://www.castaglia.org/proftpd/contrib/ftpasswd > /usr/bin/ftpasswd
chmod 0555 /usr/bin/ftpasswd

Далее с помощью этой утилиты создаете пользователей и группы, которые описаны в конфиге (можете свои имена придумывать):

text

ftpasswd --passwd --name ftp_1 --file /etc/proftpd/ftpd.passwd --uid 5000 --gid 5000 --home /home/ftp_1 --shell /bin/false
ftpasswd --group --name ftp_group –file /etc/proftpd/ftpd.group --gid 5000 --member ftp_1

Вариант 2.

В вышеуказанном конфиге удалить строки

text
AuthUserFile  /etc/proftpd/ftpd.passwd
AuthGroupFile  /etc/proftpd/ftpd.group

и вместо них записать

text
AuthPAM    yes

Тогда вы будете авторизовываться на фтп под учетками, которые есть в системе.

#46681
kolesik написал:
1. как создавать пользователей, которые могут только скачивать, которые могут заливать и изменять что либо на серваке?

2. правильно ли я понимаю что можно пойти 2мя способами: сделать локальных (что это вообще значит?) пользователей, а можно как то
завязаться с базой mysql, но я ее не знаю совсем sad

3. поскльку стоит апач с пхп хотелось бы протестить работу сайта, куда надо положить "страничку", что бы при заходе на "localhost" из под винды в браузере можно было увидеть ее?

1) как обычных пользователей. только группу делаете не "по умолчанию", а другую: например группу, которая может только читать, или группа, которая может всё (ftp_admin к примеру). А потом рулите правами на группы своих каталогов.

2)делайте так, как знаете. MySQL это если у вас 1000 юзеров.

3) никуда. localhost это ваш комп, и он не может работать в линухе как сайт, и в венде как клиент ОДНОВРЕМЕННО.

можно увидить из линуха, или из другой венды, но по другому адресу.

#54660

извиняюсь за долгое отсутствие, сейчас ftp-сервак работает, но не совсем так, как надо, а именно:

можно залогиниться под юзером, котрый есть в системе (но не под рутом, что понятно) ему можно писать/удалять только в своей дириктории, читать из любой дирректории в системе , если раскоментить анонимуса, то им можно только скачивать из домашней директории анонимуса =)

это все без этой строчки:

AuthPAM yes

теперь самое интеерсное:


сurl http://www.castaglia.org/proftpd/contrib/ftpasswd > /usr/bin/ftpasswd
chmod 0555 /usr/bin/ftpasswd

про первую строчку пишет "команда curl не найдена"

на этом я застопорился, все что я пока понял это
что бы сделать юзверов мне надо их прописать в passwd и определить их в группы

дальше полная каша в голове, объясните пожалуйста детально, лучше на примерах что откуда и как


Дальше файл passwd, если я правильно понимаю.
Что значат uid и gid, shell-тоже непонятно, что тут делает (интерпретатор командной строки)?

ftpasswd --passwd --name ftp_1 --file /etc/proftpd/ftpd.passwd --uid 5000 --gid 5000 --home /home/ftp_1 --shell /bin/false
ftpasswd --group --name ftp_group –file /etc/proftpd/ftpd.group --gid 5000 --member ftp_1

P.S. кажется забыл упомянуть, все это я делаю без графического интерфейса, в "командной строке" (bash как я правильно понимаю)

P.S.2 простите за сумбурность мыслей, голова кругом

#54661
kolesik написал:

про первую строчку пишет "команда curl не найдена"

Так установите
# aptitude install curl

#56608

Простите за большой кусок кода

text

beach:~# aptitude install curl
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов... Готово
Чтение описаний задач... Готово
Следующие НОВЫЕ пакеты будут установлены:
  curl libcurl3{a} libssh2-1{a}
0 пакетов обновлено, 3 установлено новых, 0 пакетов отмечено для удаления, и 26 пакетов не обновлено.
Необходимо получить 0B/500kB архивов. После распаковки 971kB будет занято.
Хотите продолжить? [Y/n/?] y
Запись информации расширенных состояний... Готово
Выбор ранее не выбранного пакета libssh2-1.
(Чтение базы данных... на данный момент установлено 26515 файлов и каталогов.)
Распаковывается пакет libssh2-1 (из файла .../libssh2-1_0.18-1_i386.deb)...
Выбор ранее не выбранного пакета libcurl3.
Распаковывается пакет libcurl3 (из файла .../libcurl3_7.18.2-8lenny4_i386.deb)...
Выбор ранее не выбранного пакета curl.
Распаковывается пакет curl (из файла .../curl_7.18.2-8lenny4_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет libssh2-1 (0.18-1) ...
Настраивается пакет libcurl3 (7.18.2-8lenny4) ...
Настраивается пакет curl (7.18.2-8lenny4) ...
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов... Готово
Запись информации расширенных состояний... Готово
Чтение описаний задач... Готово

beach:~# сurl http://www.castaglia.org/proftpd/contrib/ftpasswd > /usr/bin/ftpasswd -bash: сurl: команда не найдена beach:~#

может я чего не понимаю oO :(

#56625
kolesik написал:
text

beach:~# сurl http://www.castaglia.org/proftpd/contrib/ftpasswd  > /usr/bin/ftpasswd
-bash: сurl: команда не найдена
beach:~#

может я чего не понимаю oO :(

А теперь введите curl правильно или скопипастите у меня
curl http://www.castaglia.org/proftpd/contrib/ftpasswd > /usr/bin/ftpasswd

У Вас с написана по русски

#56626
kolesik написал:
может я чего не понимаю

да зачем вам curl?!

скачайте этот файл: http://www.castaglia.org/proftpd/contrib/ftpasswd (чем угодно, хоть браузером)

а потом сохраните его как /usr/bin/ftpasswd

ему ещё права дать надо:
chmod +x /usr/bin/ftpasswd
(сохранять и права менять надо под рутом, а качать можно под юзером)

curl - это файлокачалка.
а качаете вы перловый скрипт

kolesik написал:
Что значат uid и gid

на самом деле имя юзера и группа хранятся как цифры, например root == 0, вот эта цифра(число точнее) и называется UID. тоже и для группы.

shell - это итерпретатор команд, когда вы в консоли что-то пишете, то именно shell это выполняет. Есть разные shell, у меня bash.

kolesik написал:
P.S. кажется забыл упомянуть, все это я делаю без графического интерфейса, в "командной строке" (bash как я правильно понимаю)

у вас - тоже bash :) это ваша shell. (оболочка по-русски)

2All: дайте человеку нормальную книжку про дебиан. У мну только слакбук под рукой...

#56953

2All: дайте человеку нормальную книжку про дебиан. У мну только слакбук под рукой...

да да да, дайте пожалуйста человеку нормальную книжку, можно на мыло (в профиле контакты есть), или выложить гденть и дать ссылку, я на все согласен. Чую я, не разобраться мне, а надо. Пойду ковырть ftpasswd :D

Войдите или зарегистрируйтесь, чтобы ответить.