Proftpd Mysql вэбадминка quota

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
corlail
рядовой
Сообщения: 16
Зарегистрирован: 2010-10-14 15:46:42

Proftpd Mysql вэбадминка quota

Непрочитанное сообщение corlail » 2010-10-14 16:41:50

proftpd-1.3.3a_1
php5-5.2.11_1
mysql-server-5.0.84
proftpdadmin-1.04.tar.gz
7.1-RELEASE FreeBSD

есть проблема с созданием каталогов пользователей (для каждого пользователя свой каталог со своими правами доступа)
читал и делал отсюда
http://www.lissyara.su/articles/freebsd ... tpd+mysql/
допиливал создание каталогов отсюда
http://tebl.homelinux.com/files/project ... stall.html

и читал отсюда
http://www.hilik.org.ua/%D1%83%D1%81%D1 ... nistrator/

проблема следующая: пользователь создается в мускуле при подключении происходит авторицация его пускает только в папку /var/ftp/ а мне нужно чтоб при регистрации нового пользователя создавалась папка с его именем и правами на доступ в свою папку только для него.

как это сделать?
если у ког то есть нормальный работающий конфиг очень прошу поделиться...

мой конфиг proftpd.conf

ServerName "123"
ServerType standalone
DefaultServer on
ScoreboardFile /var/run/proftpd/proftpd.scoreboard

# Port 21 is the standard FTP port.
Port 21

Umask 022

LangEngine on
UseEncoding UTF-8 CP1251


RequireValidShell off

MaxInstances 30

CommandBufferSize 512

# Set the user and group under which the server will run.
User nobody
Group nogroup


# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~

# Normally, we want files to be overwriteable.
AllowOverwrite on

# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
<Limit SITE_CHMOD>
DenyAll
</Limit>

AllowStoreRestart on
AllowRetrieveRestart on
#RequireValidShell off
PathDenyFilter "\\.ftp)|\\.ht)[a-z]+$"
DefaultRoot ~
DenyFilter \*.*/

# Some logging formats
LogFormat default ".h .l .u .t \".r\" .s .b"
LogFormat auth ".v [.P] .h .t \".r\" .s"
LogFormat write ".h .l .u .t \".r\" .s .b"

# Define log-files to use
TransferLog /var/log/proftpd/proftpd.xferlog
ExtendedLog /var/log/proftpd/proftpd.access_log WRITE,READ write
ExtendedLog /var/log/proftpd/proftpd.auth_log AUTH auth
ExtendedLog /var/log/proftpd/proftpd.paranoid_log ALL default
SQLLogFile /var/log/proftpd/proftpd.mysql

# Set up authentication via SQL
# ===========
AuthOrder mod_sql.c
SQLAuthTypes Backend
#===========================
# CHANGE THE FOLLOWING LINE TO REFLECT YOUR INSTALLATION
#===========================
SQLConnectInfo proftpd_admin@localhost proftpd 111111
#===========================
SQLUserInfo usertable userid passwd uid gid homedir shell
SQLGroupInfo grouptable groupname gid members
SQLUserWhereClause "disabled=0 and (NOW()<=expiration or expiration=-1 or expiration=0)"

# Log the user logging in
SQLLog PASS counter
SQLNamedQuery counter UPDATE "lastlogin=now(), count=count+1 WHERE userid='.u'" usertable

# logout log
SQLLog EXIT time_logout
SQLNamedQuery time_logout UPDATE "lastlogout=now() WHERE userid='.u'" usertable

# display last login time when PASS command is given
SQLNamedQuery login_time SELECT "lastlogin from usertable where userid='.u'"
SQLShowInfo PASS "230" "Last login was: .{login_time}"

# xfer Log in mysql
SQLLog RETR,STOR transfer1
SQLNamedQuery transfer1 INSERT "'.u', '.f', '.b', '.h', '.a', '.m', '.T', now(), 'c', NULL" xfer_stat
SQLLOG ERR_RETR,ERR_STOR transfer2
SQLNamedQuery transfer2 INSERT "'.u', '.f', '.b', '.h', '.a', '.m', '.T', now(), 'i', NULL" xfer_stat

# Normally, we want users to do a few things.
<Global>
AllowOverwrite yes
<Limit ALL SITE_CHMOD>
AllowAll
</Limit>
</Global>
далее конфиг квот опущен


конфиг create_user.sh
#!/bin/sh

USER=$1
USER_ID=$2
GROUP_ID=$3

mkdir -p -m 775 /var/ftp/$USER
chown $USER_ID:$GROUP_ID /var/ftp/$USER

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

BSD_daemon
ефрейтор
Сообщения: 63
Зарегистрирован: 2010-10-09 21:51:17
Откуда: Из тех ворот откуда весь народ

Re: Proftpd Mysql вэбадминка quota

Непрочитанное сообщение BSD_daemon » 2010-10-14 22:21:11

corlail писал(а): проблема следующая: пользователь создается в мускуле при подключении происходит авторицация его пускает только в папку /var/ftp/ а мне нужно чтоб при регистрации нового пользователя создавалась папка с его именем и правами на доступ в свою папку только для него.
Если я вас правильно понял, то вам нужна опция:

Код: Выделить всё

CreateHome on 700 skel /home/ftp/ftp_root/skeleton dirmode 700
в /home/ftp/ftp_root/skeleton
создайте структуру директорий(можно файло там всякое по дефолту если надо положить) в директории-скелете, которая будет автоматом создаваться при первом появлении нового юзера
I also known as: "Нефиг_чем_заняться"

corlail
рядовой
Сообщения: 16
Зарегистрирован: 2010-10-14 15:46:42

Re: Proftpd Mysql вэбадминка quota

Непрочитанное сообщение corlail » 2010-10-15 9:33:48

CreateHome on 755 /var/ftp uid ~ gid ~
может я неправильно сформулировал но нужно чтоб в директории /var/ftp/ создавалась папка каждого юзера с правами 755 при создании юзера с вэбинтерфейса
на мысль натолкнули правильную только ман плохо курится неопытный я еще :(

CreateHome насколько я понял по ману то что мне и нужно только пользоваться еще не научился

corlail
рядовой
Сообщения: 16
Зарегистрирован: 2010-10-14 15:46:42

Re: Proftpd Mysql вэбадминка quota

Непрочитанное сообщение corlail » 2010-10-20 15:55:02

разобрался
CreateHome on оказалось достаточно

corlail
рядовой
Сообщения: 16
Зарегистрирован: 2010-10-14 15:46:42

Re: Proftpd Mysql вэбадминка quota

Непрочитанное сообщение corlail » 2010-10-28 9:16:30

вобщем все оказалось немного сложнее
есть папки в /var/ftp/ типа user1 user2 user3
нужно чтоб пользователи группы writers имели доступ на запись в свои папки а просто пользователи имели доступ только на чтение в те же папки
все пользователи фтп вписаны в mysql
вот тако вариант судя по всему опирается на системных пользователей

<Limit SITE_CHMOD>
DenyAll
</Limit>
<Limit WRITE>
AllowGroup writers, admins
</Limit>

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

BSD_daemon
ефрейтор
Сообщения: 63
Зарегистрирован: 2010-10-09 21:51:17
Откуда: Из тех ворот откуда весь народ

Re: Proftpd Mysql вэбадминка quota

Непрочитанное сообщение BSD_daemon » 2010-11-06 21:36:14

corlail писал(а):вобщем все оказалось немного сложнее
есть папки в /var/ftp/ типа user1 user2 user3
нужно чтоб пользователи группы writers имели доступ на запись в свои папки а просто пользователи имели доступ только на чтение в те же папки
имхо это не правильно, домашние каталоги на то и домашние, чтоб туды никто нос не совал, а совместные директории надо делать отдельно и в них разруливать права по группам.
I also known as: "Нефиг_чем_заняться"

corlail
рядовой
Сообщения: 16
Зарегистрирован: 2010-10-14 15:46:42

Re: Proftpd Mysql вэбадминка quota

Непрочитанное сообщение corlail » 2010-11-08 10:14:18

дело в том что я непонимаю как объяснить proftpd что группы нужно брать с мускула :(
этот пример справедлив только с системными группами а мне нужно чтоб он мускул нюхал правильно и с группами и квотингом впоследствии.

BSD_daemon
ефрейтор
Сообщения: 63
Зарегистрирован: 2010-10-09 21:51:17
Откуда: Из тех ворот откуда весь народ

Re: Proftpd Mysql вэбадминка quota

Непрочитанное сообщение BSD_daemon » 2010-11-09 13:39:45

corlail писал(а):дело в том что я непонимаю как объяснить proftpd что группы нужно брать с мускула :(
этот пример справедлив только с системными группами а мне нужно чтоб он мускул нюхал правильно и с группами и квотингом впоследствии.
proftpd держит фиктивные ИД для юзеров и групп(секьюрность такая), поэтому чтобы все заработало, перепишите на бумажку номера(ИД) групп из муси и пройдитесь
chown -R root:group_ID_that_you_got_from_mysql
по групповым каталогам.
I also known as: "Нефиг_чем_заняться"

corlail
рядовой
Сообщения: 16
Зарегистрирован: 2010-10-14 15:46:42

Re: Proftpd Mysql вэбадминка quota

Непрочитанное сообщение corlail » 2010-11-09 14:36:59

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