Перейти до

Установка на CentOS


Рекомендованные сообщения

В sudoers

 

User_Alias BILLING = apache

BILLING ALL = NOPASSWD: ALL

 

 

вот так

 

$ip='127.0.0.1';

$globconf=parse_ini_file(CONFIG_PATH."billing.ini");

$ping=$globconf['PING'];

$ping_command=$ping.' -c 1 '.$ip;

$ping_result=shell_exec($ping_command);

deb(nl2br($ping_result));

 

отпинговалось

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 57
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Обожаю эти ваши линуксы, каждый день что-то новое

А так чего говорит?

 

$globconf=parse_ini_file(CONFIG_PATH."billing.ini");
$sudo=$globconf['SUDO'];
$command=$sudo.' id';
$result=shell_exec($command);
deb(nl2br($result));

 

таки походу sudo не работает

Ссылка на сообщение
Поделиться на других сайтах

В дебаг пусто

 

в консоли делаю так

 

sudo -u apache ping 127.0.0.1

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.177 ms

64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.176 ms

 

пинг есть

Ссылка на сообщение
Поделиться на других сайтах
Только досмотрел, а какого юзера sudo использует?

Того под которым работает апач. Для BSD это www. В этих ваших линуксах - вообще неизвестно кто начиная httpd и apache и заканчивая http,nobody,www и еще невесть кем.

 

Итого в sudoers следует добавить

 

User_Alias BILLING = пользователь_апача
BILLING		 ALL = NOPASSWD: ALL

 

В дебаг пусто, ничего не показало.

Хоть бы чем-то ругнулось :(

Одно из двух - либо проблема действительно в sudo и оно например пароль просит, либо у вас в принципе не исполняется shell_exec()/system() попробуйте тогда так:

 

 

$ip='127.0.0.1';
$globconf=parse_ini_file(CONFIG_PATH."billing.ini");
$ping=$globconf['PING'];
$ping_command=$ping.' -c 1 '.$ip;
$ping_result=shell_exec($ping_command);
deb(nl2br($ping_result));

 

Если и после такого в дебаге пустота - у вас таки по идее ничерта системные вызовы не исполняются. Соответственно не должно работать вообще ничего.

 

Без рабочего только sudo - не будут работать:

1. парсинг новых МАС из логов

2. перезапуск dhcpd

3. выпарсивание начислений средств stargazer

4. посылка HUP для stargazer при работе с NAS-ами

5. все пинговалки

6. еще черт знает что - оно в большинстве своем форкается под sudo

так и есть, нихрена не пашет.

Ссылка на сообщение
Поделиться на других сайтах
В дебаг пусто

значит sudo либо не выполняется вообще, либо пытается запросить пароль.

 

sudo -u apache ping 127.0.0.1

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.177 ms

64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.176 ms

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

 

Для начала возможно стоит позырить под кем же работают процессы php:

 

$command='id';
$result=shell_exec($command);
deb(nl2br($result));

 

Если в выхлопе вы таки увидите своего apache - значит проблема таки либо:

 

1. в том как это должно быть описано в sudoers (я реально не знаю, отличается ли оно в GNU-том окружении)

2. либо в банальном пути до самого sudo

 

Больше вариантов почему оно может не работать - придумать сложно.

Ссылка на сообщение
Поделиться на других сайтах
Есть чем заняться на выходных

дык это ж хорошо :)

 

Буду искать.

Чего последний тест говорит?

 

 

$command='id';
$result=shell_exec($command);
deb(nl2br($result));

Ссылка на сообщение
Поделиться на других сайтах

Интересные моменты.

В мане по sudoers написано что редактировать только visudo, как то странно, но проблему не решило.

 

В

User_Alias BILLING = пользователь_апача

BILLING ALL = NOPASSWD: ALL

в первой строке добавил двух юзеров apache, sirko

вторая без изменений.

 

Разлогинился, залогинился под sirko. Начал пробовать команды из billing.ini. Часть работает часть нет если не указывать sudo.

Если синтаксис sudo команда работает все. Ниче не пойму. Может судо не при делах?

Права на исполнение кроме того что в мане по установке написано нигде не нужно добавлять?

 

 

З.Ы. Есть продвинутые линуксоиды проконосультировать по sudoers ?

Ссылка на сообщение
Поделиться на других сайтах
Есть чем заняться на выходных
дык это ж хорошо :)
Буду искать.
Чего последний тест говорит?
 $command='id'; $result=shell_exec($command); deb(nl2br($result)); 

тыкает пальцем в apache

Ссылка на сообщение
Поделиться на других сайтах
тыкает пальцем в apache

окей, будем считать что в данном контексте apache и sirko эквивалентны

 

Разлогинился, залогинился под sirko. Начал пробовать команды из billing.ini. Часть работает часть нет если не указывать sudo.

ниразу не понял, кто работает и кто нет

 

можете елементарно попробовать под sirko все тот же

 

/usr/bin/sudo /bin/ping -i 0.01 -c 1 127.0.0.1 (надеюсь такие путя у вас в billing.ini прописаны?)

 

если работает - значит болезнь порылась где-то в system() - ему, кто-то претит выполнять внешние команды.

Ссылка на сообщение
Поделиться на других сайтах

Я на всяк случай ложу его сюда

; type of low level billing interraction
baseconf = sgconfxml
SGCONF=/usr/sbin/sgconf
SGCONFXML=/usr/sbin/sgconf_xml
STG_HOST=localhost
STG_PORT=5555
XMLRPC_PORT=8081
STG_LOGIN=ххххххх
STG_PASSWD=ххххххх
SUDO=/usr/bin/sudo
TOP = /usr/bin/top -b
CAT=/bin/cat
GREP=/bin/grep
;RC_DHCPD=/usr/local/etc/rc.d/isc-dhcpd
RC_DHCPD=/usr/sbin/dhcpd
UPTIME=/usr/bin/uptime
PING=/bin/ping
TAIL=/usr/bin/tail
KILL=/bin/kill
STGPID=/var/run/stargazer.pid
STGNASHUP=0
PHPSYSINFO=phpsysinfo/
LANG = ua
TASKBAR_ICON_SIZE = 64
; user register options
REGRANDOM_MAC=1
REGALWONLINE=1
REGDISABLEDSTAT=0

 

В консоле все сработало, пинг прошел.

 

По поводу разлогинился - залогинился. Имелось ввиду что зашел под sirko :)

Ссылка на сообщение
Поделиться на других сайтах

На первый взгляд все нормально.

 

Когда добьетесь, чтобы заработало

$globconf=parse_ini_file(CONFIG_PATH."billing.ini");
$sudo=$globconf['SUDO'];
$command=$sudo.' id';
$result=shell_exec($command);
deb(nl2br($result));

 

сможете быть уверенным, что взлетит и все остальное. Я бы порекомендовал при исполнении этого куска паралельно смотреть в httpd-error.log на предмет воплей о том, почему же ему исполнение sudo из shellexec() не нравиться. Возможно в этих ваших центосах, кроме selinux присутствуют еще какие-то упоротые патчи на apache либо php препятствующие эскалации прав скрипта (suhosin?). В общем есть такое чувство, что это чисто дистрибутиво зависимые заморочки. Так как у существующих людей с gentoo/debian/ubuntu что-что а банальный system() работает всегда.

 

И кто-то еще спрашивает, почему официальная поддержка производиться только на FreeBSD :)

Ссылка на сообщение
Поделиться на других сайтах

Выходные таки "пролетели".

Попробую копнуть у указанных направлениях.

 

И кто-то еще спрашивает, почему официальная поддержка производиться только на FreeBSD :)

Не знаю кто там жаловался, у меня вопросов нет.

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

в логе апача

sudo: sorry, you must have a tty to run sudo

 

Таки бок в судо.

Вот почему из под sirko работало, он заходил через tty.

 

Параметр Defaults requiretty во всех манах по умолчанию выключен.

В Centos его решили по умолчанию включить. При чем не только в 6й и в 5й тоже.

:facepalm:

Ссылка на сообщение
Поделиться на других сайтах
  • 3 months later...

Доброго времени суток.

 

Случилось такое. При регистрации юзера и при смене МАКа выдает следующую ошибку 

Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/billing/modules/system/filesystem.php on line 135

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

Вопрос сосбно как всегда :wacko:  куда копать?

Ссылка на сообщение
Поделиться на других сайтах

Случилось такое. При регистрации юзера и при смене МАКа выдает следующую ошибку

Я бы для начала сделал find ./ | grep lock в директории ubilling и проверил бы в модуле "Настройки системы" нету ли красненьких надписей.

 

Я так предполагаю что когда то делал две обновлялки подряд.

От какой версии обновлялись?

 

Возможно что то пропустил.

Вполне себе возможно

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Ссори за задержку.

есть такой файлик в multinet dhcp.conf.lock что это означает?

 

Файл dhcp.conf в multinet пустой. Сам сервак берет настройки с /etc/dhcp/dhcp.conf а абоненские маки подбирает с /etc/dhcp/multinet/local (символ на billing/multinet/local).

Описалово настройки dhcp под ubuntu мне не подошло, поэтому ковырял самостоятельно.

 

Обновлялся подряд на 0.3.6 - rev 2264 и сразу на 0.3.7 rev 2339  

 

модуле "Настройки системы" нету ли красненьких надписей

 

Надписей нет, есть только точки что включено что нет.

Ссылка на сообщение
Поделиться на других сайтах

есть такой файлик в multinet dhcp.conf.lock что это означает?

Просто удалите его. Как и прочие .lock которые вы можете найти в окрестностях каталога billing. Это вполне себе должно решить проблему в базовом варианте.

 

Наличие таких штук вообще случается довольно редко, ближе к "никогда". И сигнализирует о том, что форк апача успел где-то рухнуть, в процессе записи этого файлика либо ВНЕЗАПНО ищезли права на запись в каталог/файлик. При удалении лока все должно работать нормально. Также сверьте права на multinet рекурсивно - там должны быть права записи для апача, под кем он там у вас работает, как минимум.

Ссылка на сообщение
Поделиться на других сайтах

Обновлялся подряд на 0.3.6 - rev 2264 и сразу на 0.3.7 rev 2339 

Эммм, 0.4.0 как-бы уже давно текущий.

 

Надписей нет, есть только точки что включено что нет.

Вот и ладушки.

Ссылка на сообщение
Поделиться на других сайтах

 

Трабла была в том что был включен Selinux!

У меня сейчас эпилептический припадок будет. Эти ваши линуксы не перестают радовать :P

 

просьба продолжить дискуссию. ситуация аналогична, 3й день бьюсь об стену.

selinux вырубил изначально, php.ini перелопатил уже много раз. с консоли юзера добавляет но проблем. в судо тоже порядок.

при смене мака в дебаге выдало что не может открыть dhcpd.conf.lock - его нет в папке multinet, но если его создаю и даю права на a+x

то получаю фатал ерор по таймауту пхп (какой бы не ставил в php.ini).

куда копать уже просто незнаю. очень понравился ubilling как веб оболочка но связать с stg никак не выходит. уже в приступах паники скоро начну переписывать апи

на sql функции, что бы в базу добавляло напрямую))

Ссылка на сообщение
Поделиться на других сайтах

 

 выдало что не может открыть dhcpd.conf.lock - его нет в папке multinet

нет прав записи в сам multinet

 

но если его создаю и даю права на a+x

а почему вы решили что там что-то выполняться должно?

 

chmod -R 777 content/ config/ multinet/ exports/ remote_nas.conf  

 

От вас требуется, больше ничего.

 

Ссылка на сообщение
Поделиться на других сайтах

 

 

 выдало что не может открыть dhcpd.conf.lock - его нет в папке multinet

нет прав записи в сам multinet

 

>но если его создаю и даю права на a+x

а почему вы решили что там что-то выполняться должно?

 

chmod -R 777 content/ config/ multinet/ exports/ remote_nas.conf  

 

От вас требуется, больше ничего.

 

 

 

как нистранно но есть права на запись и в сам мультинет и в лок-файл.

drwxrwxrwx.  2 apache apache   4096 Апр 23 10:59 multinet

 

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

тоесть каждая нужная мне команда заканчивается чем то типа: блаблаюла fatal error max execute time 30 sec, но когда возвращаюсь на преведущую страницу

то вижу что мак сменен или пользователь зареган)

Ссылка на сообщение
Поделиться на других сайтах

Хозяин multinet оказался не апач, хотя вроде раньше все было ОК.

Спс, все заработало.

 

По версии. Стоит последняя, то я указывал на какие грешил.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від Dilan
      Собственно ищу кто сделает такую связку с нуля под ключ. Тз высылаю в личку. Заранее спасибо.
    • Від ukrtelekom
      Доброго часу!
      Шукається адміністратор віддалений для разової роботи по коригуванню працюючого Ubilling з мікротами. Якщо стосунки зклєяться- то до постійної додаткової копійки. 
      Всім заздалегідь дякую. Хейти, бажано не писати. Контакти в приватні повідомлення або O73283344O

×
×
  • Створити нове...