Ограничение на количество возможных пользователей в панели.
Ограничение на количество возможных пользователей в панели.
Здарова мужики! Использую VestaCP как панель упр. хотингом.
Суть: Хочу чтобы на этом сервере создалось максимум два или три пользователя ( по 5-10 ГБ диска, так как больше на сервере нет места, к примеру) Все ограничения на квоту и т.д. это понятно, как ограничить количество создаваемых пользователей, чтобы биллинг (hope billing) при попытке создать нового уперся в лимит и выдал ошибку, а то он будет создавать и дальше их.
Суть: Хочу чтобы на этом сервере создалось максимум два или три пользователя ( по 5-10 ГБ диска, так как больше на сервере нет места, к примеру) Все ограничения на квоту и т.д. это понятно, как ограничить количество создаваемых пользователей, чтобы биллинг (hope billing) при попытке создать нового уперся в лимит и выдал ошибку, а то он будет создавать и дальше их.
Re: Ограничение на количество возможных пользователей в панели.
Если бы дело было только в ручном создании, то ограничить стоит пакетами и квотой, но здесь вмешивается биллинг. Думаю, что вопрос к создателям hopebilling .чтобы биллинг (hope billing) при попытке создать нового уперся в лимит и выдал ошибку, а то он будет создавать и дальше их.
Re: Ограничение на количество возможных пользователей в панели.
Биллинг этот только использует API на создание пользователя. То есть, думаю кусок кода втулить в /bin/v-add-user
Там уже есть проверки на наименование, пароль и т.д.
Только вот, какой и будет ли так работать?
Там уже есть проверки на наименование, пароль и т.д.
Только вот, какой и будет ли так работать?
Re: Ограничение на количество возможных пользователей в панели.
Hoppebilling не умеет не регистрировать или блокировать регистрацию.Spyces wrote:Биллинг этот только использует API на создание пользователя. То есть, думаю кусок кода втулить в /bin/v-add-user
Там уже есть проверки на наименование, пароль и т.д.
Только вот, какой и будет ли так работать?
Или vestacp в момент переполнения будет блокировать как ?
вот для примера
Re: Ограничение на количество возможных пользователей в панели.
Да, так можно сделать.Spyces wrote:Биллинг этот только использует API на создание пользователя. То есть, думаю кусок кода втулить в /bin/v-add-user Там уже есть проверки на наименование, пароль и т.д. Только вот, какой и будет ли так работать?
Нужно будет криптовать самостоятельно это дело да еще и следить, чтобы при обновлении не съехало.
Re: Ограничение на количество возможных пользователей в панели.
Если делать в лоб, то все вроде не сложно.
Итак, колбасим /usr/local/vesta/bin/v-add-user
Здесь мы ориентируемся на количество записей в /etc/passwd, принимаем значение за количество пользователей. Подсчитываем их командой "cat /etc/passwd | wc -l" и считаем, сколько всего нам нужно будет держать пользователей. Количество пользователей задаем жестко в numberlimit, ориентируясь на количество строк выше. Предположим, что после установки системы и Vesta, у нас там 38 записей, соответственно сверяемся с numberlimit при добавлении пользователя. Если numberlimit меньше или раньше количеству пользователей, то выдаем ошибку - полна народу в нашей хате.
Просто проверка нашей переменной.
PS: Работу я проверил кстати, решение вполне себе рабочее.
Итак, колбасим /usr/local/vesta/bin/v-add-user
Code: Select all
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument definition
user=$1
password=$2; HIDE=2
email=$3
package=${4-default}
fname=$5
lname=$6
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
is_user_free() {
check_sysuser=$(cut -f 1 -d : /etc/passwd | grep "^$user$" )
if [ ! -z "$check_sysuser" ] || [ -e "$USER_DATA" ]; then
check_result $E_EXISTS "user $user exists"
fi
}
#наша вставка начинается здесь
numberlimit=38
is_user_nubmer() {
check_usernumber=$(cat /etc/passwd | wc -l)
if [[ "$numberlimit" -le "$check_usernumber" ]]; then
check_result $E_INVALID "user room full"
exit
fi
}
#наша вставка заканчивается здесь
Code: Select all
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '3' "$#" 'USER PASSWORD EMAIL [PACKAGE] [FNAME] [LNAME]'
is_format_valid 'user' 'email' 'package'
if [ ! -z "$fname" ]; then
is_format_valid 'fname' 'lname'
fi
is_user_free "$user"
is_password_valid
is_package_valid
#наша вставка начинается здесь
is_user_nubmer
#наша вставка заканчивается здесь
PS: Работу я проверил кстати, решение вполне себе рабочее.
Code: Select all
$ v-add-user user4 user3user3user3 [email protected]
Error: user room full
Re: Ограничение на количество возможных пользователей в панели.
Возможно для красоты стоило бы это все делать как-то через глобальные переменные или как-то облагородить, но не знаю, что-то я не очень уверен, что такое ограничение - это не индивидуальный кастом или грабли по-просту говоря.
Логику is_user_nubmer наверное можно как-то усилить с учетом места на диске, но опять же не ясно, стоит ли. Если у нас более менее одинаково нарезан диск и стандартные пакеты, то это кажется лишним.
Логику is_user_nubmer наверное можно как-то усилить с учетом места на диске, но опять же не ясно, стоит ли. Если у нас более менее одинаково нарезан диск и стандартные пакеты, то это кажется лишним.
Re: Ограничение на количество возможных пользователей в панели.
Для хоста самое главное;
1. Удаление пользователя после блокировки, если не использует.
2. Не регистрировать если закончилось место.
3. Проверка сайта (работает или нет,) если нет то зачем он ...
4. * Квоты.
5. *Доп ip (смена, добавление к юзеру).
А биллин это не умеет. Это надо расширять функционал панели.
[первый пункт можно отнести к билингу]
* - исключение в панели управлении.
1. Удаление пользователя после блокировки, если не использует.
2. Не регистрировать если закончилось место.
3. Проверка сайта (работает или нет,) если нет то зачем он ...
4. * Квоты.
5. *Доп ip (смена, добавление к юзеру).
А биллин это не умеет. Это надо расширять функционал панели.
[первый пункт можно отнести к билингу]
* - исключение в панели управлении.
Re: Ограничение на количество возможных пользователей в панели.
Вот здесь можно прикинуть формулу максимального количества пользователей от места. Особенно будет приятно, если сервер режется одинаковыми кусками - один сервер: все места по 5 гб, второй - все по 10. Такую логику изобразить наверное не сложно будет.Mr.Erbutw wrote:2. Не регистрировать если закончилось место.
Ну это как раз не важно, как говориться - оплочено же :)Mr.Erbutw wrote:3. Проверка сайта (работает или нет,) если нет то зачем он ...
Re: Ограничение на количество возможных пользователей в панели.
ладно если 3 тарифа, если в дальнейшем предоставлять от 0,5, 1, 2, 5, 8, 10 гб , думаю косячно считать общее.skurudo wrote: Вот здесь можно прикинуть формулу максимального количества пользователей от места. Особенно будет приятно, если сервер режется одинаковыми кусками - один сервер: все места по 5 гб, второй - все по 10. Такую логику изобразить наверное не сложно будет.
У меня Free :/Ну это как раз не важно, как говориться - оплочено же :)