Да, данный скрипт, как и статья в целом, приведены исключительно для демонстрации возможностей Pdmenu.
Вопросов безопасности (настроек sudo, ограничения прав созданного для pdmenu пользователя, грамотного написания shell-скриптов и т.д. и т.п.) я не касался, чтобы не раздувать статью. На эти темы уже есть достаточно много информации и примеров.
Понятно, что администратор должен подумать кому и какие возможности управления сервером он дает, чем это чревато и какие меры безопасности следует предпринять в каждом конкретном случае.
Ну для демонстрации возможностей — наверное таки подходит.
Если написали про обязательное логирование, напишите и про обязательную проверку всего, что ввел юзер.
Лично я бы сделал проверку формата, даже если бы единственным пользователем этой штуки был я сам.
Я сторонник максимальных ограничений.
Даже хостинговая панель управления (плеск) по умолчанию отключена и запускается только тогда, когда действительно нужна, после чего сервис снова останавливается (кстати, тоже через pdmenu).
ИМХО вебмин не совсем для этого, там при наличии кривых рук можно все поламать очень просто, что не подпадает под название топика: «как не дать новичку ошибиться».
В режиме меню выдаст: "Arrow keys move, Esc exits current menu, Enter runs program"
В режиме исполнения скрипта ничего не произойдет. Скрипт будет выполняться без каких-либо прерываний.
какой смысл в привязке к IP, если они не фиксированые и постоянно обновляются? поднимите VPN и юзайте сертификаты — раз настройте начальнику и готово, человеку не придётся адреса прописывать. это не говоря уже о том, что можно просто по SFTP с ключём ходить (выше уже упоминалось).
но вобще идея имеет место — надо сделать альтернативный шелл в виде текстового меню с ограниченной функциональность, хотя наверняка уже есть такие.
>поднимите VPN и юзайте сертификаты — раз настройте начальнику и готово, человеку не придётся адреса прописывать. это не говоря уже о том, что можно просто по SFTP с ключём ходить
Для конкретно этой задачи — да, согласен. Удобнее и проще.
Но целью топика все-таки было не показать решение конкретной проблемы, а раскрыть функционал и возможности pdmenu.
Зачем вообще привязываться к IP? IP может не спросясь поменять провайдер, может возникнуть нужда зайти на сайт через левую сеть (wifi в аэропорту, GPRS, etc), с левого устройства… зачем?
Гораздо удобнее и надежнее аутентификация по ключу или по одноразовым паролям с привязкой к телефону/email.
От этой идеи пришлось отказаться, т.к. в моем случае (кроме всего прочего, уже сказанного) нужна была ещё и возможность останавливать/запускать веб-сервис.
> А написать простенький сервис для перезапуска веб-сервиса было не судьба?
К сожалению, у меня не настолько богатый опыт, чтобы сделать это быстро и качественно, а затягивать с решением не хотелось. Да и pdmenu вполне понравилось малоопытным пользователям. Но да — веб-интерфейс приятнее и проще.
По свободе попробую реализовать и, возможно, следующая статья будет посвящена именно этому :)
Pdmenu или как не дать новичку ошибиться