Название: [РЕШЕНО] Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Hrundel от Октябрь 26, 2013, 10:42 Всем привет,
в продолжение к своему предыдущему вопросу хочу спросить о возможности запуска команды от лица SuperUser У меня nagios установлен под su, и мне после каждой реконфигурации нужно его перезапускать. для этого я хочу воспользоваться bash Как уже делал раньше: Код
Мой вопрос: что писать в скрипте для того чтобы получить права su для перезапуска Цитировать #!/bin/sh # здесь нужно получить права SuperUser # и наверное как-то с паролем разобраться (без понятия!!!) restart nagios Если кто-то решал подобные задачи, подскажите как это реализовать. я пока пороюсь в инете на тему как bash'и писать. Может там что найду. Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Old от Октябрь 26, 2013, 10:54 kdesu/gksu. Или настроить sudo, что бы он вообще не спрашивал пароль для запуска данного скрипта.
Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Hrundel от Октябрь 26, 2013, 11:22 То есть, достаточно написать
Цитировать #!/bin/sh gksu rcnagios restart ??? *Еще не пробовал потому, что перезапускаться надо. Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Hrundel от Октябрь 26, 2013, 11:59 Нарыл еще вот такой вариант
Цитировать #!/bin/bash echo myPassword_1234 | sudo -S rcnagios restart Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Hrundel от Октябрь 26, 2013, 12:01 Или вообще даже вот так:
Код
Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Old от Октябрь 26, 2013, 12:35 Пароли в открытом виде? Не очень это безопасно.
Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Hrundel от Октябрь 26, 2013, 14:33 Пароли в открытом виде? Не очень это безопасно. Согласен, конечно. Old, дорогой, ну, предложи безопасное решение. :) Как правильно то написать? Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Old от Октябрь 26, 2013, 14:40 Как правильно то написать? IMHO, либо пользователь вводит пароль руками, либо настроить sudo, что бы можно было выполнять нужную команду без ввода пароля вообще. sudo это позволяет.Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Hrundel от Октябрь 26, 2013, 14:46 Тогда, пожалуй лучше руками.
Да, остановлюсь на этом. Old, большое спасибо. Название: Re: [РЕШЕНО] Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Alex Custov от Октябрь 26, 2013, 16:50 есть xdg-su, он использует kdesu/gksu в зависимости от того что установлено. Распространять придётся самому, в дистрах его обычно нет.
Название: Re: [РЕШЕНО] Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: fedya_1981 от Октябрь 28, 2013, 08:14 Попробуй так:
QProcess *start_as_root_process=new QProcess(this); start_as_root_process->start("pkexec",QStringList()<<"--user"<<"root"<<"program_name"); Далее вводишь пароль root. принудительно убить такой процесс можно так: QProcess *kill_proc(new QProcess(this)); kill_proc->start("pkexec",QStringList()<<"kill"<<QString("%1").arg(start_open_vpn_process->pid())); kill_proc->waitForFinished(); Соответственно также необходимо ввести пароль root. Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Hrundel от Октябрь 28, 2013, 11:24 Вообще ни один вариант не полчается!!! Пытаюсь остановить выполнение nagios "rcnagios stop"
Проверяю в терминале статус - nsgios как работал так дальше и работает. Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Alex Custov от Октябрь 28, 2013, 11:29 Вообще ни один вариант не полчается!!! Пытаюсь остановить выполнение nagios "rcnagios stop" Проверяю в терминале статус - nsgios как работал так дальше и работает. Код возврата и статус процесса в QProcess проверял? Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Hrundel от Октябрь 28, 2013, 11:42 Сделал такой запрос:
Код
Получил такой ответ: Цитировать "root's password:sudo: rcnagios: command not found " "Process operation timed out" 0 0 QProcess: Destroyed while process is still running. Не понимаю, какая именно команда не найдена? rcnagios ? В терминале она прекрасно работает! Название: Re: Запуск команды через QProcess от лица SuperUser (Linux) Отправлено: Hrundel от Октябрь 28, 2013, 13:14 УРА!!! Все заработало!!! ;D ;D ;D
Проблема была в неправильном пути к файлу. ::) Всем спасибо! |