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

Как я могу настроить Центр программного обеспечения так, чтобы пользователи без полномочий root могли устанавливать вещи из репозиториев Ubuntu без необходимости вводить их пароль?

Я полностью осознаю последствия для безопасности и знаю, готов рискнуть. Fedora 12 поставляется с чем-то вроде этого. (Я полагаю, что изменив конфигурацию PolicyKit)

47
задан 18 February 2014 в 17:33

5 ответов

Можно изменить полномочия PolicyKit позволить пользователям получать доступ к aptdaemon бэкенду тот Центр программного обеспечения использование.

dpkg --listfiles aptdaemon шоу это /usr/share/polkit-1/actions/org.debian.apt.policy файл, указывающий действия, возможные на aptdaemon бэкенде.

Смотря в том файле, < action id=""> теги указывают возможные действия. Вы, вероятно, хотели бы org.debian.apt.install-packages позволить пользователям устанавливать новые пакеты из архива, и org.debian.apt.update-cache позволить пользователям обновлять списки пакета.

Посмотрите man pklocalauthority какие документы, как установить локальные полномочия на действиях PolicyKit. Помещение следующего в /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla позволит любому пользователю, зарегистрированному локальной машине устанавливать пакеты после ввода их собственного пароля (даже когда они не находятся в группе admin) и обновить кэш пакета, не вводя пароля.

[Untrusted Install]
Action=org.debian.apt.install-or-remove-packages
ResultyAny=no
ResultInactive=no
ResultActive=auth_self

[Untrusted Update]
Action=org.debian.apt.update-cache
ResultAny=no
ResultInactive=no
ResultActive=yes
36
ответ дан 18 February 2014 в 17:33

Я не думаю, что в настоящее время возможно сделать так через GUI, но следующее должно работать, хотя быть немного топорным. YMMV.

Добавьте следующую строку к/etc/sudoers (использование sudo visudo отредактировать файл):

%packageinstallers ALL = NOPASSWD: /usr/bin/software-center /usr/bin/apt-get

Затем просто необходимо создать и добавить определенных пользователей к packageinstallers группа:

$ sudo addgroup packageinstallers
$ sudo adduser jdoe packageinstallers

Теперь jdoe может сделать следующее:

$ sudo apt-get install <some-package>

и можно отредактировать настольный пункт меню для Центра программного обеспечения так, чтобы он обратился software-center предварительно ожидая команда с gksudo.

PolicyKit может позволить Вам делать так без sudo, но это вне моего понимания в этой точке.

10
ответ дан 18 February 2014 в 17:33

Если вам нужно только общее разрешение, чтобы разрешить / запретить установку пакета, перейдите к PolicyKit.

К сожалению, PolicyKit не имеет точного контроля над пакетом для установки. Если вы хотите дать своим пользователям разрешение на установку только ограниченного набора приложений, вам следует использовать sudo и установить что-то вроде программных каналов ...

Я также искал что-то подобное, но так как я ничего не нашел, я кодировал это простое решение «программные каналы», доступное здесь, на GitHub

. Это очень просто. система, позволяющая обычным (не администраторам) пользователям устанавливать пакеты из ограниченных каталогов.

Просто определите «каналы» (группы пакетов) в простом текстовом файле и дайте своим пользователям разрешения на запуск программных каналов.

Они будут видеть пакеты только в каналах, соответствующих их группам UNIX.

0
ответ дан 18 February 2014 в 17:33

Ответ РАОФ относится только к Ubuntu. Kubuntu использует QAptWorker в качестве бэкэнда (наблюдается для Natty и Oneiric). Чтобы разрешить установку без полномочий root, создайте /etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pkla, содержащий:

[Update Software Sources]
Action=org.kubuntu.qaptworker.updateCache
ResultAny=no
ResultInactive=no
ResultActive=yes

[Install Software]
Action=org.kubuntu.qaptworker.commitChanges
ResultAny=no
ResultInactive=no
ResultActive=auth_self

Я хотел разрешить некоторым пользователям, не являющимся администраторами, устанавливать программное обеспечение, не предоставляя доступ sudo напрямую. Это было достигнуто путем вставки следующих строк в обе группы конфигурации:

Identity=unix-user:some-non-admin-user

Если есть группа, которой необходимо предоставить разрешение, используйте unix-group вместо unix-user.

0
ответ дан 18 February 2014 в 17:33

Чтобы это работало в моей Ubuntu 18.04, мне пришлось изменить /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla file to:

[Untrusted Install]
#Action=org.debian.apt.install-or-remove-packages
Action=org.freedesktop.packagekit.package-*
ResultyAny=no
ResultInactive=no
ResultActive=auth_self
Identity=*

[Untrusted Update]
Action=org.debian.apt.update-cache
ResultAny=no
ResultInactive=no
ResultActive=yes
Identity=*

[Admin Install]
#Action=org.debian.apt.install-or-remove-packages
Action=org.freedesktop.packagekit.package-*
ResultyAny=no
ResultInactive=no
ResultActive=yes
Identity=unix-group:adm

Кроме того, с последним правилом я разрешаю всем в группе adm устанавливать/удалять без пароля.

0
ответ дан 30 November 2019 в 09:19

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

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