Форум сайта python.su
0
Всем привет
Написал веб интерфейс с множеством скриптов, для своих тривиальных задач на сервере, запускаю через apache
Хотелось бы запускать некоторые скрипты с правами, чтобы можно было к примеру создавать каталоги менять права, создавать конфиги для nginx итд(вообщем всё что только захочу через скрипт), ну вообщем с правами root.
Вопрос:
как написать скрипт, чтобы можно было вызвав этот скрипт через веб морду, делать все манипуляции с сервером?
1) как сделать секьюрно?
2) как сделать не секьюрно?
Офлайн
72
Ну можно писать через веб-морду задания в базу, файлы и т.д. А скрипты крутить от рута по крону и пусть они читают и выполняют эти задания. Только фигня это все, не вижу разницы как вас поломают - получив рута или поствив задание от имени веб-сервера.
Отредактировано PooH (Апрель 12, 2016 05:43:08)
Офлайн
0
1) Ну можно писать через веб-морду задания в базу, файлы
2) А скрипты крутить от рута по крону и пусть они читают и выполняют эти задания
Можно пожалуйста пояснить?
Офлайн
568
carter85
Обычно под скриптами понимаются некие небольшие (или большие) утилиты, которые не работают в рамках http-запроса, а запускаются отдельными процессами. Думаю, именно так вас понял PooH.
А ответ на ваш вопрос, думаю, к питону прямого отношения не имеет. Ваше wsgi-приложение будет работать с правами того пользователя, который его запустил. Добавьте этого пользователя в соответствующие группы и будут права. Посмотрите вообще всех пользователей, у вас наверняка есть пользователи свзязанные с веб-серверами.
Офлайн
0
FishHook
carter85Обычно под скриптами понимаются некие небольшие (или большие) утилиты, которые не работают в рамках http-запроса, а запускаются отдельными процессами. Думаю, именно так вас понял PooH.А ответ на ваш вопрос, думаю, к питону прямого отношения не имеет. Ваше wsgi-приложение будет работать с правами того пользователя, который его запустил. Добавьте этого пользователя в соответствующие группы и будут права. Посмотрите вообще всех пользователей, у вас наверняка есть пользователи свзязанные с веб-серверами.
Офлайн
857
Можешь в sudo (sudoers) разрешить пользователю, под которым работает веб-сервер, запускать только этот скрипт. В самом скрипте должны быть все действия зафиксированы, чтобы можно было только выбрать конкретное.
Отредактировано py.user.next (Апрель 12, 2016 11:39:36)
Офлайн
0
py.user.nextя понял
Можешь в sudo (sudoers) разрешить пользователю, под которым работает веб-сервер, запускать только этот скрипт. В самом скрипте должны быть все действия зафиксированы, чтобы можно было только выбрать конкретное.
Офлайн
72
carter85
1) Ну можно писать через веб-морду задания в базу, файлы
2) А скрипты крутить от рута по крону и пусть они читают и выполняют эти задания
Можно пожалуйста пояснить?
Офлайн
857
carter85Не нужен тебе suid, если ты безопасно хочешь сделать.
а если использовать:
1) suid
carter85Демон - это туфта. У тебя скрипт, и этот скрипт выполняется веб-сервером (процесс веб-сервера запускает скрипт, который может дальше что-нибудь делать). Чтобы этот скрипт мог делать привилегированные вещи, эти привилегии должны быть у процесса веб-сервера. Но, допустим, у апача нет таких привилегий, поэтому их нужно дать.
2) демон для изменения прав на скрипт.
Отредактировано py.user.next (Апрель 12, 2016 14:27:38)
Офлайн
0
py.user.next
1) suid - нужно обертку на си писать. да и не то это
2) по крону тоже не то
Я хочу с помощью кнопки запускать скрипт мгновенно передавая туда какие либо аргументы
Подскажите плиз:
Каким образом указать в html коде что нужно запустить скрипт с sudo?
к примеру сейчас
print (""" <form action="test.py" method="POST">""")
print (""" <form action="sudo test.py" method="POST">""")
Офлайн