Страница 1 из 1

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

Добавлено: 2010-10-14 16:41:50
corlail
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

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

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

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

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

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

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

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

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

Добавлено: 2010-10-20 15:55:02
corlail
разобрался
CreateHome on оказалось достаточно

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

Добавлено: 2010-10-28 9:16:30
corlail
вобщем все оказалось немного сложнее
есть папки в /var/ftp/ типа user1 user2 user3
нужно чтоб пользователи группы writers имели доступ на запись в свои папки а просто пользователи имели доступ только на чтение в те же папки
все пользователи фтп вписаны в mysql
вот тако вариант судя по всему опирается на системных пользователей

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

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

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

Добавлено: 2010-11-06 21:36:14
BSD_daemon
corlail писал(а):вобщем все оказалось немного сложнее
есть папки в /var/ftp/ типа user1 user2 user3
нужно чтоб пользователи группы writers имели доступ на запись в свои папки а просто пользователи имели доступ только на чтение в те же папки
имхо это не правильно, домашние каталоги на то и домашние, чтоб туды никто нос не совал, а совместные директории надо делать отдельно и в них разруливать права по группам.

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

Добавлено: 2010-11-08 10:14:18
corlail
дело в том что я непонимаю как объяснить proftpd что группы нужно брать с мускула :(
этот пример справедлив только с системными группами а мне нужно чтоб он мускул нюхал правильно и с группами и квотингом впоследствии.

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

Добавлено: 2010-11-09 13:39:45
BSD_daemon
corlail писал(а):дело в том что я непонимаю как объяснить proftpd что группы нужно брать с мускула :(
этот пример справедлив только с системными группами а мне нужно чтоб он мускул нюхал правильно и с группами и квотингом впоследствии.
proftpd держит фиктивные ИД для юзеров и групп(секьюрность такая), поэтому чтобы все заработало, перепишите на бумажку номера(ИД) групп из муси и пройдитесь
chown -R root:group_ID_that_you_got_from_mysql
по групповым каталогам.

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

Добавлено: 2010-11-09 14:36:59
corlail
вот ручками то я и не хотел это делать :(
хотелось красиво, с вэбконсоли..... так шоб без лишних телодвижений...
(я видел что в базе левые ID и групп и юзеров и такая мысль прописать руками проскакивала)