sirko.n Опубліковано: 5 січня, 2013 Автор Опубліковано: 5 січня, 2013 В 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)); отпинговалось
nightfly Опубліковано: 5 січня, 2013 Опубліковано: 5 січня, 2013 А так чего говорит? $globconf=parse_ini_file(CONFIG_PATH."billing.ini"); $sudo=$globconf['SUDO']; $command=$sudo.' id'; $result=shell_exec($command); deb(nl2br($result)); таки походу sudo не работает
sirko.n Опубліковано: 5 січня, 2013 Автор Опубліковано: 5 січня, 2013 В дебаг пусто в консоли делаю так 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 пинг есть
sirko.n Опубліковано: 5 січня, 2013 Автор Опубліковано: 5 січня, 2013 Только досмотрел, а какого юзера 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 так и есть, нихрена не пашет.
nightfly Опубліковано: 5 січня, 2013 Опубліковано: 5 січня, 2013 В дебаг пусто значит sudo либо не выполняется вообще, либо пытается запросить пароль. sudo -u apache ping 127.0.0.1PING 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 Больше вариантов почему оно может не работать - придумать сложно.
sirko.n Опубліковано: 5 січня, 2013 Автор Опубліковано: 5 січня, 2013 Есть чем заняться на выходных Буду искать.
nightfly Опубліковано: 5 січня, 2013 Опубліковано: 5 січня, 2013 Есть чем заняться на выходных дык это ж хорошо Буду искать. Чего последний тест говорит? $command='id'; $result=shell_exec($command); deb(nl2br($result));
sirko.n Опубліковано: 5 січня, 2013 Автор Опубліковано: 5 січня, 2013 Интересные моменты. В мане по sudoers написано что редактировать только visudo, как то странно, но проблему не решило. В User_Alias BILLING = пользователь_апача BILLING ALL = NOPASSWD: ALL в первой строке добавил двух юзеров apache, sirko вторая без изменений. Разлогинился, залогинился под sirko. Начал пробовать команды из billing.ini. Часть работает часть нет если не указывать sudo. Если синтаксис sudo команда работает все. Ниче не пойму. Может судо не при делах? Права на исполнение кроме того что в мане по установке написано нигде не нужно добавлять? З.Ы. Есть продвинутые линуксоиды проконосультировать по sudoers ?
sirko.n Опубліковано: 5 січня, 2013 Автор Опубліковано: 5 січня, 2013 Есть чем заняться на выходных дык это ж хорошо Буду искать. Чего последний тест говорит? $command='id'; $result=shell_exec($command); deb(nl2br($result)); тыкает пальцем в apache
nightfly Опубліковано: 5 січня, 2013 Опубліковано: 5 січня, 2013 тыкает пальцем в 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() - ему, кто-то претит выполнять внешние команды.
sirko.n Опубліковано: 5 січня, 2013 Автор Опубліковано: 5 січня, 2013 Я на всяк случай ложу его сюда ; 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
nightfly Опубліковано: 6 січня, 2013 Опубліковано: 6 січня, 2013 На первый взгляд все нормально. Когда добьетесь, чтобы заработало $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
sirko.n Опубліковано: 8 січня, 2013 Автор Опубліковано: 8 січня, 2013 Выходные таки "пролетели". Попробую копнуть у указанных направлениях. И кто-то еще спрашивает, почему официальная поддержка производиться только на FreeBSD Не знаю кто там жаловался, у меня вопросов нет. Спасибо.
sirko.n Опубліковано: 11 січня, 2013 Автор Опубліковано: 11 січня, 2013 в логе апача sudo: sorry, you must have a tty to run sudo Таки бок в судо. Вот почему из под sirko работало, он заходил через tty. Параметр Defaults requiretty во всех манах по умолчанию выключен. В Centos его решили по умолчанию включить. При чем не только в 6й и в 5й тоже.
nightfly Опубліковано: 11 січня, 2013 Опубліковано: 11 січня, 2013 Обожаю эти ваши линуксы, каждый день что-то новое
sirko.n Опубліковано: 13 квітня, 2013 Автор Опубліковано: 13 квітня, 2013 Доброго времени суток. Случилось такое. При регистрации юзера и при смене МАКа выдает следующую ошибку Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/billing/modules/system/filesystem.php on line 135 После чего случилось и когда выяснить не удалось, мнение у "регистраторов" разделилось на две противоположности. Я так предполагаю что когда то делал две обновлялки подряд. Возможно что то пропустил. Вопрос сосбно как всегда куда копать?
nightfly Опубліковано: 13 квітня, 2013 Опубліковано: 13 квітня, 2013 (відредаговано) Случилось такое. При регистрации юзера и при смене МАКа выдает следующую ошибку Я бы для начала сделал find ./ | grep lock в директории ubilling и проверил бы в модуле "Настройки системы" нету ли красненьких надписей. Я так предполагаю что когда то делал две обновлялки подряд. От какой версии обновлялись? Возможно что то пропустил. Вполне себе возможно Відредаговано 13 квітня, 2013 nightfly
sirko.n Опубліковано: 22 квітня, 2013 Автор Опубліковано: 22 квітня, 2013 Ссори за задержку. есть такой файлик в 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 модуле "Настройки системы" нету ли красненьких надписей Надписей нет, есть только точки что включено что нет.
nightfly Опубліковано: 22 квітня, 2013 Опубліковано: 22 квітня, 2013 есть такой файлик в multinet dhcp.conf.lock что это означает? Просто удалите его. Как и прочие .lock которые вы можете найти в окрестностях каталога billing. Это вполне себе должно решить проблему в базовом варианте. Наличие таких штук вообще случается довольно редко, ближе к "никогда". И сигнализирует о том, что форк апача успел где-то рухнуть, в процессе записи этого файлика либо ВНЕЗАПНО ищезли права на запись в каталог/файлик. При удалении лока все должно работать нормально. Также сверьте права на multinet рекурсивно - там должны быть права записи для апача, под кем он там у вас работает, как минимум.
nightfly Опубліковано: 22 квітня, 2013 Опубліковано: 22 квітня, 2013 Обновлялся подряд на 0.3.6 - rev 2264 и сразу на 0.3.7 rev 2339 Эммм, 0.4.0 как-бы уже давно текущий. Надписей нет, есть только точки что включено что нет. Вот и ладушки.
neironus Опубліковано: 23 квітня, 2013 Опубліковано: 23 квітня, 2013 Трабла была в том что был включен Selinux!У меня сейчас эпилептический припадок будет. Эти ваши линуксы не перестают радовать просьба продолжить дискуссию. ситуация аналогична, 3й день бьюсь об стену. selinux вырубил изначально, php.ini перелопатил уже много раз. с консоли юзера добавляет но проблем. в судо тоже порядок. при смене мака в дебаге выдало что не может открыть dhcpd.conf.lock - его нет в папке multinet, но если его создаю и даю права на a+x то получаю фатал ерор по таймауту пхп (какой бы не ставил в php.ini). куда копать уже просто незнаю. очень понравился ubilling как веб оболочка но связать с stg никак не выходит. уже в приступах паники скоро начну переписывать апи на sql функции, что бы в базу добавляло напрямую))
nightfly Опубліковано: 23 квітня, 2013 Опубліковано: 23 квітня, 2013 выдало что не может открыть dhcpd.conf.lock - его нет в папке multinet нет прав записи в сам multinet но если его создаю и даю права на a+x а почему вы решили что там что-то выполняться должно? chmod -R 777 content/ config/ multinet/ exports/ remote_nas.conf От вас требуется, больше ничего.
neironus Опубліковано: 23 квітня, 2013 Опубліковано: 23 квітня, 2013 выдало что не может открыть 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, но когда возвращаюсь на преведущую страницу то вижу что мак сменен или пользователь зареган)
DarkSpider Опубліковано: 23 квітня, 2013 Опубліковано: 23 квітня, 2013 Может привести полный листинг каталога с Убилингом и точную ошибку ? А то играем тут в угадайку.
sirko.n Опубліковано: 23 квітня, 2013 Автор Опубліковано: 23 квітня, 2013 Хозяин multinet оказался не апач, хотя вроде раньше все было ОК. Спс, все заработало. По версии. Стоит последняя, то я указывал на какие грешил.
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас