Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Общие вопросы
  • Search

Ограничение на количество возможных пользователей в панели.

Общие вопросы о панели управления Vesta
Post Reply
  • Print view
Advanced search
16 posts
  • 1
  • 2
  • Next
Spyces
Posts: 3
Joined: Thu Mar 02, 2017 9:25 pm

Ограничение на количество возможных пользователей в панели.
  • Quote

Post by Spyces » Thu Mar 02, 2017 9:31 pm

Здарова мужики! Использую VestaCP как панель упр. хотингом.
Суть: Хочу чтобы на этом сервере создалось максимум два или три пользователя ( по 5-10 ГБ диска, так как больше на сервере нет места, к примеру) Все ограничения на квоту и т.д. это понятно, как ограничить количество создаваемых пользователей, чтобы биллинг (hope billing) при попытке создать нового уперся в лимит и выдал ошибку, а то он будет создавать и дальше их.
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Ограничение на количество возможных пользователей в панели.
  • Quote

Post by skurudo » Thu Mar 02, 2017 9:43 pm

чтобы биллинг (hope billing) при попытке создать нового уперся в лимит и выдал ошибку, а то он будет создавать и дальше их.
Если бы дело было только в ручном создании, то ограничить стоит пакетами и квотой, но здесь вмешивается биллинг. Думаю, что вопрос к создателям hopebilling .
Top

Spyces
Posts: 3
Joined: Thu Mar 02, 2017 9:25 pm

Re: Ограничение на количество возможных пользователей в панели.
  • Quote

Post by Spyces » Thu Mar 02, 2017 10:03 pm

Биллинг этот только использует API на создание пользователя. То есть, думаю кусок кода втулить в /bin/v-add-user
Там уже есть проверки на наименование, пароль и т.д.
Только вот, какой и будет ли так работать?
Top

Mr.Erbutw
Posts: 1040
Joined: Tue Apr 29, 2014 10:05 pm

Os: CentOS 6x
Web: apache + nginx
Re: Ограничение на количество возможных пользователей в панели.
  • Quote

Post by Mr.Erbutw » Fri Mar 03, 2017 10:48 am

Spyces wrote:Биллинг этот только использует API на создание пользователя. То есть, думаю кусок кода втулить в /bin/v-add-user
Там уже есть проверки на наименование, пароль и т.д.
Только вот, какой и будет ли так работать?
Hoppebilling не умеет не регистрировать или блокировать регистрацию.
Или vestacp в момент переполнения будет блокировать как ?

вот для примера
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Ограничение на количество возможных пользователей в панели.
  • Quote

Post by skurudo » Fri Mar 03, 2017 11:33 am

Spyces wrote:Биллинг этот только использует API на создание пользователя. То есть, думаю кусок кода втулить в /bin/v-add-user Там уже есть проверки на наименование, пароль и т.д. Только вот, какой и будет ли так работать?
Да, так можно сделать.
Нужно будет криптовать самостоятельно это дело да еще и следить, чтобы при обновлении не съехало.
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Ограничение на количество возможных пользователей в панели.
  • Quote

Post by skurudo » Fri Mar 03, 2017 11:40 am

Если делать в лоб, то все вроде не сложно.
Итак, колбасим /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
}
#наша вставка заканчивается здесь
Здесь мы ориентируемся на количество записей в /etc/passwd, принимаем значение за количество пользователей. Подсчитываем их командой "cat /etc/passwd | wc -l" и считаем, сколько всего нам нужно будет держать пользователей. Количество пользователей задаем жестко в numberlimit, ориентируясь на количество строк выше. Предположим, что после установки системы и Vesta, у нас там 38 записей, соответственно сверяемся с numberlimit при добавлении пользователя. Если numberlimit меньше или раньше количеству пользователей, то выдаем ошибку - полна народу в нашей хате.

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
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Ограничение на количество возможных пользователей в панели.
  • Quote

Post by skurudo » Fri Mar 03, 2017 11:47 am

Возможно для красоты стоило бы это все делать как-то через глобальные переменные или как-то облагородить, но не знаю, что-то я не очень уверен, что такое ограничение - это не индивидуальный кастом или грабли по-просту говоря.

Логику is_user_nubmer наверное можно как-то усилить с учетом места на диске, но опять же не ясно, стоит ли. Если у нас более менее одинаково нарезан диск и стандартные пакеты, то это кажется лишним.
Top

Mr.Erbutw
Posts: 1040
Joined: Tue Apr 29, 2014 10:05 pm

Os: CentOS 6x
Web: apache + nginx
Re: Ограничение на количество возможных пользователей в панели.
  • Quote

Post by Mr.Erbutw » Fri Mar 03, 2017 2:30 pm

Для хоста самое главное;
1. Удаление пользователя после блокировки, если не использует.
2. Не регистрировать если закончилось место.
3. Проверка сайта (работает или нет,) если нет то зачем он ...
4. * Квоты.
5. *Доп ip (смена, добавление к юзеру).

А биллин это не умеет. Это надо расширять функционал панели.
[первый пункт можно отнести к билингу]
* - исключение в панели управлении.
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Ограничение на количество возможных пользователей в панели.
  • Quote

Post by skurudo » Fri Mar 03, 2017 5:30 pm

Mr.Erbutw wrote:2. Не регистрировать если закончилось место.
Вот здесь можно прикинуть формулу максимального количества пользователей от места. Особенно будет приятно, если сервер режется одинаковыми кусками - один сервер: все места по 5 гб, второй - все по 10. Такую логику изобразить наверное не сложно будет.
Mr.Erbutw wrote:3. Проверка сайта (работает или нет,) если нет то зачем он ...
Ну это как раз не важно, как говориться - оплочено же :)
Top

Mr.Erbutw
Posts: 1040
Joined: Tue Apr 29, 2014 10:05 pm

Os: CentOS 6x
Web: apache + nginx
Re: Ограничение на количество возможных пользователей в панели.
  • Quote

Post by Mr.Erbutw » Fri Mar 03, 2017 8:26 pm

skurudo wrote: Вот здесь можно прикинуть формулу максимального количества пользователей от места. Особенно будет приятно, если сервер режется одинаковыми кусками - один сервер: все места по 5 гб, второй - все по 10. Такую логику изобразить наверное не сложно будет.
ладно если 3 тарифа, если в дальнейшем предоставлять от 0,5, 1, 2, 5, 8, 10 гб , думаю косячно считать общее.
Ну это как раз не важно, как говориться - оплочено же :)
У меня Free :/
Top


Post Reply
  • Print view

16 posts
  • 1
  • 2
  • Next

Return to “Общие вопросы”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password