Если пользователь не сталл вводить пароль при повышениее root-прав -> Приложение вырубается #392
Closed
opened 2 weeks ago by rodion.n
·
10 comments
Loading…
Reference in new issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
Проблема в следующем, если приложение было запущено без root прав, пользователь нажал на повышение но не стал вводить пароль. Не логичнее будет возвращать пользователю окно без root прав, а не вырубать приложение после отказа ввода пароля?
Вырубается оно с SIGINT
я не имею доступа к информации ввёл он пароль или нет
Какой алгоритм работы этого куска кода ?
Пользователь нажимает кнопку повышения прав - утилита вызывает команду
где argv[0] - параметр, всегда существующий в утилите. В нём прописан путь до файла, по которому лежит бинарник из которого утилита и была запущена
сразу после вызова команды утилита закрывается и открывается окно пароля от pkexec.
Если не выключить старую копию утилиты в этот момент, то больше у неё не будет возможности закрыться без действий пользователя, новая инстанция открывается как отдельный процесс и со старым никак не связана
тогда ошибка не должна никакая у тебя появляться, нажал повысить права, утилита закрылась и запустилась новая версия с повышением прав через pkexec.
ошибка уже исправлена, задача про то что мне нужно открывать установщик обратно с неповышенными правами если пользователь не ввёл пароль, на что я и ответил что возможности такой нет
По факту через pkexec же не требуется вводить пароль. Сейчас на данный момент при повышении прав до root он просто переводит программу в root, ранее окно с вводом пароля появлялось потому что искал по неправильному пути.
Проблема была исправлена по факту своему тут -> #394
На нормальной системе он будет запрашивать пароль, не запрашивает только в LiveCD
даже в таком случае работает все правильно. Если исправить проблему по которой приложение закрывается если не ввести пароль, нельзя. Значит выставляю
неисправимои закрываю.Если немного скорректировать команду, то можно получить возврат по отмене пароля или неверному паролю:
т.е. сам pkexec возвращает истину либо лож, если не верно ведён пароль или отмена ввода.