А можно сделать рестарт демона, который работает под рутом, без предоставления судошных прав пользователю?
Я так понимаю, что в apachectl это реализовано собственно внутри апача, программно.
А если нет доступа к исходникам или в них не хочется лезть, то как это реализовать в init.d скрипте?

Tagged with →  

26 Responses to рестарт демона, который работает под рутом

  1. TcuSwet:

    ты можешь договориться с пользователем что если нужно рестартнуть файл то пользователь делает
    date > ~/file.name

    а от рута настраиваешь incron на нужный файл.
    Костыль — Да.
    Работает — Да.

  2. Xxxsuper:

    ебать.

  3. Xxxsuper:

    дай судо только на рестарт данного демона и все.

  4. TcuSwet:

    тык, написано ведь «без предоставления судошных прав». я думал задача чисто академическая. Если имелось ввиду «без предоставления рутовых прав», то однозначно твой вариант.

  5. RARMega:

    Не понял часть про «в apachectl это реализовано собственно внутри апача, программно»

  6. Amtruby:

    ну так я и сам могу 🙂
    Но хочется без костылей.

  7. Amtruby:

    а так можно?
    Дать судо только на запуск одного конкретного скрипта, без прав его изменения или запуска других команд, конструкций баша?

  8. Amtruby:

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

    Однако, может быть, есть способ организовать что-то типа судо. Ведь задача очень узкая — перезапуск конкретного демона.
    Лежащий на поверхности вариант — чтобы постоянно крутился рутовый демон, который всё, что умеет — это по сигналу от пользователя форкаться и в дочернем процессе сначала убивать демон, а потом опять его запускать, после чего умирать. Рабочий демон рестартанут контрольным демоном по сигналу от пользователя с правами рута. Вроде бы такое есть уже нативное решение, но только у меня чего-то мозги расплавились от недосыпа и вспомнить не могу.

  9. Amtruby:

    inetd блять

  10. RARMega:

    так я и не понял, при чём тут apachectl
    А обрабатывать демоном сигналы от любых юзеров — серьёзная дыркаю

  11. Xxxsuper:

    ты, блядь, не поверишь.

  12. Xxxsuper:

    поправьте меня, если я ошибаюсь, а апача под рукой нет.
    вроде там suid-бит, нет?

  13. RARMega:

    где именно?

  14. Xxxsuper:

    да, хуйню сказал.
    apachectl просто скрипт, программно там ничего не реализовано кроме опций к демону
    не рут его пнуть не может.

  15. HackerSucker:

    suid-бит на apachectl?

  16. Amtruby:

    для примеру он тут

  17. Amtruby:

    оо…
    слушай, а я думал может. Типа для этого и предназначен. А зачем ещё отдельный скрипт, когда можно параметры ручками набрать.
    Просто сам всегда его под рутом пинал, поэтому как-то не придавал значения.

  18. Amtruby:

    Stephan-V: не, apachectl мне на хуй не сдался, я просто думал, что он позволяет простым пользователям управлять апачем. В общем, сглюканул я, извините.

  19. Amtruby:

    Ок. Понятно, без судошных прав никуда.
    Но их мне не дали, а реализовывать механизм переинициализации всего изнутри капец геморрой. Придётся для перезапуска демона админа пинать каждый раз.

  20. Amtruby:

    с дыркой согласен.

  21. TcuSwet:

    бля. Попроси sudo только на свой демон у админа. Эта штатная ситуация и в мане описана. Хотя конечно если у тебя в демоне есть дырка — то ты сможешь поиметь рута, так что зависит от параноидальности админа. Но если он и правда параноик — прикроет жопу каким нить selinux,ом или еще чем.

  22. Amtruby:

    да он не параноик, просто не положено.
    Неудобно просто через пень колоду рестартовать. Хотел покомфортнее сделать.

  23. TcuSwet:

    а нет возможности переделать запуск демона на «не от рута»?

  24. NamSpb:

    man sudoers, %username%

  25. Amtruby:

    есть
    ну вообще есть

  26. RARMega:

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

Добавить комментарий