2013-11-07 2 views
1

Мне нужно создать каталог внутри корневого каталога с помощью приложения-виджета qt.Как получить разрешение root внутри qt-программы?

void Home::on_pushButton_clicked() 
{ 
    system("mkdir /bin/mydir"); 
} 

Но, как получить корневой привилегией, прежде чем сделать папку внутри/bin папки

+0

см. Также http://stackoverflow.com/questions/7036588/cqt-executing-linux-command-as-root – Petesh

ответ

1

В данной статье приведены необходимые шаги, чтобы получить корневые privilages для вашего приложения, но он тестировался только на Fedora. link

+0

Вы должны вставить соответствующий контент из ссылки здесь, а также ссылку. –

0

Программа не может получить привилегии root после того, как она была запущена; разрешено только (временно или окончательно) отказаться от привилегий.

Наилучший подход, как правило, для вызова программы, такие как gksudo или ksudo, что система будет вызывать как корень, в какой момент они временно падение привилегии суперпользователя, запрашивать у пользователя разрешения, закрыть их связь с система GUI, вернуть права root и выполнить действие.

0

Если вы хотите, чтобы ваше приложение получало доступ к некоторым ресурсам, требующим прав root, вам необходимо запустить это приложение с правами администратора.

например
sudo your_application_name 

или Войти как корень, а затем запустить это приложение.

0

вы можете получить корневой пароль, используя команду pkexec в программировании, как показано ниже:

void Home::on_pushButton_clicked() 
{ 
    system("pkexec mkdir /bin/myDir"); 
} 

или вы можете попытаться с помощью QProcess класса, однако для цели pkexec достаточно.

Смежные вопросы