Название: запуск внешних скриптов с правами рута Отправлено: Layer от Мая 19, 2011, 06:18 есть у меня пара sh скриптов, для остановки и запуска mysql сервера соответсвенно:
Код
Код
без sudo оно не работает. запускаю я их из приложения qt таким образом: Код
если само приложение запускается из под рута, то всё нормально работает (за исключением того что стиль контролов другой) если же компилю обычно из под юзера, то при попытке запуска скрипта в консоли сборки выдает законно: bash: ..../start.sh: "Отказано в доступе". может есть другие пути решения для управления запуском сервера? не из под рута. а если нет, то как можно побороть изменение стиля окна? и второй вопрос, я программно заменяю файл my.cnf в директории /etc/mysql/ это тоже возможно только тогда, когда программа запущена из под рута? Название: Re: запуск внешних скриптов с правами рута Отправлено: Mysterious от Мая 19, 2011, 06:35 Чтобы разрешить юзеру запускать скрипты необходимо настроить sudo.
Используй команду visudo. Название: Re: запуск внешних скриптов с правами рута Отправлено: Пантер от Мая 19, 2011, 07:17 kdesudo или gksudo используй.
Название: Re: запуск внешних скриптов с правами рута Отправлено: Layer от Мая 19, 2011, 08:54 Чтобы разрешить юзеру запускать скрипты необходимо настроить sudo. Используй команду visudo. думается, у конечного пользователя на его машине это нежелательно, править sudoers. Название: Re: запуск внешних скриптов с правами рута Отправлено: GreatSnake от Мая 19, 2011, 09:23 Скачай xdg-su (http://cgit.freedesktop.org/xdg/xdg-utils/plain/scripts/xdg-su) скрипт и "носи" его со своим приложением.
Он сам найдёт нужную gui sudo-запускалку. В случае, если ничего не найдёт подходящего, то запустит xterm с login-om. Название: Re: запуск внешних скриптов с правами рута Отправлено: Пантер от Мая 19, 2011, 09:25 Скачай xdg-su (http://cgit.freedesktop.org/xdg/xdg-utils/plain/scripts/xdg-su) скрипт и "носи" его со своим приложением. Спасибо за хорошее решение. Добавляю в закладки.Он сам найдёт нужную gui sudo-запускалку. В случае, если ничего не найдёт подходящего, то запустит xterm с login-om. Название: Re: запуск внешних скриптов с правами рута Отправлено: Layer от Мая 19, 2011, 09:40 kdesudo или gksudo используй. попробовал, но кнопки всё равно другого стиля, нежели если приложение запускать обычным способом. как можно обойти? Название: Re: запуск внешних скриптов с правами рута Отправлено: Layer от Мая 19, 2011, 09:43 Скачай xdg-su (http://cgit.freedesktop.org/xdg/xdg-utils/plain/scripts/xdg-su) скрипт и "носи" его со своим приложением. Он сам найдёт нужную gui sudo-запускалку. В случае, если ничего не найдёт подходящего, то запустит xterm с login-om. Спасибо, попробую! Название: Re: запуск внешних скриптов с правами рута Отправлено: GreatSnake от Мая 19, 2011, 09:46 Цитировать попробовал, но кнопки всё равно другого стиля, нежели если приложение запускать обычным способом. Естественно kdesudo использует кде-шную тему, gksudo гномовскую, а твоя апп qt-шную.как можно обойти? И как ты это хочешь обойти? Пиши свою sudo-запускалку. Только, если не знаешь псевдо-терминалы, сам не напишешь. Название: Re: запуск внешних скриптов с правами рута Отправлено: Blackwanderer от Мая 19, 2011, 11:32 попробовал, но кнопки всё равно другого стиля, нежели если приложение запускать обычным способом. Потому что настройки внешнего вида берутся уже не для текущего пользователя, а для рута (он ведь тоже пользователь и у него своя домашняя папка со своими настройками). А поскольку настройки внешнего вида (иконки, темы для окон и виджетов и т.д.) для рута навряд ли задавались, то они берутся по умолчанию.как можно обойти? Название: Re: запуск внешних скриптов с правами рута Отправлено: GreatSnake от Мая 19, 2011, 11:37 Цитировать Потому что настройки внешнего вида берутся уже не для текущего пользователя, а для рута (он ведь тоже пользователь и у него своя домашняя папка со своими настройками). А поскольку настройки внешнего вида (иконки, темы для окон и виджетов и т.д.) для рута навряд ли задавались, то они берутся по умолчанию. На самом деле непонятно про какие кнопки ТС говорит - про кнопки kdesudo или gksudo или кнопки своей апп запущенной через sudo.Название: Re: запуск внешних скриптов с правами рута Отправлено: Layer от Мая 19, 2011, 11:52 GreatSnake, кнопки своей app запущенной из под sudo :)
еще вопрос интересует, когда мы запускаем приложение в проекте - рабочим каталогом является путь к проекту, так? а когда запускаю руками из консоли то currentPath() возвращает домашнюю папку, хотя лежит в той же директории проекта, это почему происходит? или лан, заюзаю applicationFilePath... Название: Re: запуск внешних скриптов с правами рута Отправлено: wolfut от Мая 31, 2011, 10:46 В первом примере есть строчка
int res = sh.execute(program, arguments); sh - экземпляр какого класса? подскажите пожалуйста Название: Re: запуск внешних скриптов с правами рута Отправлено: GreatSnake от Мая 31, 2011, 10:51 Цитата: wolfut sh - экземпляр какого класса? подскажите пожалуйста QProcessPS. неужто так сложно в ассистенте в указателе вбить 'execute' ??? |