Как запустить приложение с графическим интерфейсом в качестве администратора из сеанса пользователя без администратора?

Я определил 2 учетных записи пользователей:

с правами администратора (с sudo вправо) => позволяет называть его adminuser. второй, без каких-либо привилегий =>, позвонит ему normaluser, и я настрою автолог на этого второго пользователя normaluser.

Итак, когда я открываю сессию normaluser и хочу запускать приложение с правами администратора, открываю терминал Ctrl + Alt + T и:

Он работает нормально, не выходя из сеанса normaluser (нет необходимости открывать сеанс adminuser).

Но что мне делать, если приложение нужно запускать с помощью графического интерфейса пользователя? Я хоть об этом:

su adminuser
gksu anyapplication ...

, но я получаю

[ f3]
1
задан 11 June 2014 в 22:20

7 ответов

Один из способов, который, вероятно, будет работать, - использовать «sux», а не «su» при первом переключении на пользователя admin. sux устраняет проблему запуска приложений x из подделанного пользователя. Он находится в стандартном репо и может быть установлен путем ввода sudo apt-get install sux в командной строке.

Затем просто используйте «sux» вместо «su», и он должен работать так, как вы ожидаете.

Позволяет повторно использовать пример приложения xclock:

sux admin
gksu xclock
11
ответ дан 25 May 2018 в 08:33

PAM может позаботиться об этом

Это работает для меня на Ubuntu 16.04:

помещает строку:

session optional pam_xauth.so

где-то в:

/etc/pam.d/su

и / или

/etc/pam.d/sudo

, а затем делать «su» или «sudo su». Я могу использовать графические приложения как root.

2
ответ дан 25 May 2018 в 08:33
  • 1
    Подтверждение того, что это работает и на Kubuntu 16.04. Благодаря! – akhmed 12 February 2017 в 05:30

Вместо

su admin gksu anyapplication ...

предлагаю вам попробовать gksu -u admin anyapplication, где вы делаете все, используя команду gksu. Также учтите, что вы должны ввести пароль пользователя, упомянутого в команде, то есть в этом случае вам нужно ввести пароль администратора.

0
ответ дан 25 May 2018 в 08:33
  • 1
    В настроенной по умолчанию системе Ubuntu, если normaluser запускает gksu -u admin anyapplication, она предложит ввести пароль normaluser для admin с помощью sudo бэкэнд, так же как gksu anyapplication предложит normaluser ' чтобы стать root с использованием sudo бэкэнд. Оба отказались по той же причине - normaluser не имеет возможности запускать команды с помощью sudo. – Eliah Kagan 18 July 2012 в 01:55

pkexec

Существует вездесущая альтернатива kdesudo и gksu - pkexec, которая из пакета policykit-1, которая требуется множеством пакетов.

0
ответ дан 25 May 2018 в 08:33
  • 1
    Я рекомендую расширить этот ответ, чтобы объяснить, как обычный пользователь (который не является администратором и не может стать root с sudo или polkit), который знает пароль администратора (т. Е. Того, кто может стать root с sudo или polkit), может использовать pkexec для запуска графической программы как root. Вот что задается здесь вопросом. Мне не ясно, что pkexec сделает это, по крайней мере, без экстенсивно редактируя файлы конфигурации, тем более что pkexec обычно не может использоваться для запуска произвольных графических программ (без профилей polkit) вообще . Есть ли способ? – Eliah Kagan 17 August 2014 в 13:07
  • 2
    @EliahKagan Это работает на Ubuntu с настройкой по умолчанию - просто запустите pkexec command, и он работает. Конфигурация находится в файле /usr/share/polkit-1/actions/org.freedesktop.policykit.policy, который установлен именованным пакетом. И на самом деле вам нужно написать пароль администратора только один раз – pqnet 17 August 2016 в 04:36

Вот команда, чтобы выполнить это.

gksu app-name

Запустите его, не выполнив сначала su. Вам нужно только выполнить указанную выше команду из обычного пользовательского сеанса, и приложение будет запущено с правами root.

-1
ответ дан 25 May 2018 в 08:33
  • 1
    он не работает - обратите внимание, что я пытаюсь выполнить сеанс пользователя без привилегий – Boris 18 July 2012 в 00:57
  • 2
    Что такое сообщение об ошибке? – SirCharlo 18 July 2012 в 00:57
  • 3
    ввод моего пароля пользователя normal - я получаю сообщение " Невозможно запускать как пользователь root " – Boris 18 July 2012 в 01:01
  • 4
    ввод моего пароля superuser/admin - я получаю сообщение «неправильный пароль, повторите попытку» и т. д. – Boris 18 July 2012 в 01:02

Вы должны использовать:

gksudo AppName

Это сначала вызывает запрос графического пароля (пароль пользователя), а затем запускает GUI-приложение как root (я просто пытался, это действительно так. вещь: я попытался gksu AppName сразу после этого, и это сработало, как и предполагалось, как предполагает префикс «gk». Поэтому я не совсем уверен, где может быть ваша проблема). [!d1 ]

-1
ответ дан 25 May 2018 в 08:33
  • 1
    он работает в вашем случае, потому что вы пробовали сеанс администратора с правом sudo. Как насчет сеанса пользователя без администратора без права sudo? – Boris 18 July 2012 в 01:23
  • 2
    Я использовал gksudo из обычного окна терминала с пользователем без администратора (мой собственный пользователь). Вы правы, однако, для второй попытки, так как я все еще имел sudo perms тогда. Но проблема Бориса совсем другая: его приложение не может подключиться к X, что в моем случае работало одновременно. Как вы можете видеть из исходного вопроса, sudo в текстовом режиме работает для него. – Izzy 18 July 2012 в 02:00

Есть только один суперпользователь, и это root.

Пользователь 1 является администратором и имеет права sudo. Пользователь 2 не является администратором и не имеет прав sudo.

Попробуйте войти в систему как пользователь 1, затем используя команду

gksudo app-name  

(заменив имя приложения именем приложения) Надеюсь, что это поможет - позвольте мне знать. : o)

EDIT: дополнительная информация по запросу

Если это только вы на компьютере, то использование пользователя 1 (у кого есть разрешение на использование sudo) ничем не отличается от использования пользователя 2 (у кого нет разрешения на использование sudo). Пользователь 1 имеет те же права, что и пользователь 2. Если пользователь 1 не выдает команду с префиксом sudo и / или предоставляет свой пароль, чтобы приложения могли запускаться с корневыми привилегиями. Единственное различие заключается в том, что пользователь 2 не может запускать приложения как root.

Надеюсь, это поможет вам немного объяснить это. :

о)
-1
ответ дан 25 May 2018 в 08:33
  • 1
    спасибо за разъяснение между супер пользователем и администратором, я отредактирую свой вопрос. Что вы подразумеваете под «регистрацией как пользователь 1»? = & GT; открыть сеанс с пользователем 1? ну это то, чего я бы хотел избежать. – Boris 18 July 2012 в 01:21
  • 2
    добавлено больше информации для ответа по запросу: o) – Fernhill Linux Project 18 July 2012 в 01:28
  • 3
    хорошо, моя жена и мои дети используют user2 с автологином, поэтому я предпочитаю не иметь права sudo с этим пользователем. – Boris 18 July 2012 в 01:41
  • 4
    Похоже, хорошая идея - у меня тоже есть дети; o). Пробовали ли вы войти в систему как user1 и запустить команду? – Fernhill Linux Project 18 July 2012 в 01:43
  • 5
    Да, я могу, но это больно менять сеанс пользователя. Обычно мне приходится делать это несколько раз: продолжайте сеанс администратора, чтобы определить некоторые настройки, переключиться на обычный сеанс пользователя, чтобы проверить, и снова и снова очень приятно иметь возможность делать это на обычном сеансе. Большую часть времени я обрабатываю его с помощью примера su admin + sudo ... sudo vi file, за исключением приложения с графическим интерфейсом – Boris 18 July 2012 в 01:51

Другие вопросы по тегам:

Похожие вопросы: