LINUX.ORG.RU

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

 , ,


1

1

Всем привет

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

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

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



Последнее исправление: carter (всего исправлений: 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 ★★★★★
()
Ответ на: комментарий от carter

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

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

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

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

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