LINUX.ORG.RU

запуск скрипта с правами root(python)

 , ,


1

1

Всем привет

Написал веб интерфейс с множеством скриптов, для своих тривиальных задач на сервере(питон), запускаю через apache
Хотелось бы запускать некоторые скрипты с правами, чтобы можно было к примеру создавать каталоги менять права, создавать конфиги для nginx итд(вообщем всё что только захочу через скрипт), ну вообщем с правами root.
Вопрос:

как написать скрипт, чтобы можно было вызвав этот скрипт через веб морду, делать все манипуляции с сервером?

1) как сделать секьюрно?
2) как сделать не секьюрно?


1) как сделать секьюрно?

поменять права на то, что тебе надо модифицировать из скрипта, с рута на nobody.

takino ★★★★ ()

как написать скрипт, чтобы можно было вызвав этот скрипт через веб морду, делать все манипуляции с сервером?

google://socket rpc python
http://stackoverflow.com/questions/1879971/what-is-the-current-choice-for-doi...
https://habrahabr.ru/post/248507/
правда xml я бы не использовал, смысла в этом нет, т.к. данные к демону нет смысла проверять на валиднасть, их же не дядя ашот прислал из сторонней программы на delphi

system-root ★★★ ()

Запустить демона, который что-то делает после получения команды. А уже им управлять через веб морду да хоть через файлы-флаги. А иначе может бред выйти. Дал ты, например, команды обработать файлы, что займет 5 минут. Потом отвернулся/повернулся/забыл и снова эту кнопку нажал. И что? Должна запуститься снова обработка тех же файлов? Что в сумме теперь займет 10 минут, а из-за торможения дисковой подсистемы и все 50.

justAmoment ★★★★★ ()

А почему бы, вместо того, чтобы пользоваться всеми этими юникс-заморочками, заклинаниями, «ноубоди, защити меня от сглаза и порчи», просто не фильтровать данный трафик по IP? Кроме этого, ты можешь получать доступ к этому интерфейсу по post-запросу, который никто не знает, и не догадается, так как об интерфейсе этом никто понятия не имеет, никто туда ломится пытаться не будет, о чем беспокоится? Какая на, безопасность?

filequest ()

Для всего этого написан ansible.

menangen ★★★★★ ()

для своих тривиальных задач
запускаю через apache

Ужасы какие-то вы рассказываете

zolden ★★★★★ ()

Замени скрипт на run.pl

#!/usr/bin/suidperl -w
system ("python realscript.py")

На run.pl должен быть suid-бит и право на запись только руту. В realscript.py уже делаешь что хочешь с рутовыми правами.

monk ★★★★★ ()
Ответ на: комментарий от monk

suid бит может быть применен только к бинарным файлам. нужна обертка на Си.

carter ()
Ответ на: комментарий от carter

suid бит может быть применен только к бинарным файлам

Так на suidperl он есть. Просто он проверяет перед выполнением наличие suid на скрипте.

monk ★★★★★ ()
Ответ на: комментарий от monk

ну это да... да я сделал через sudo уже. лучшего варианта не нашел. можно было ещё демон написать.

carter ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.