Как я могу настроить Центр программного обеспечения так, чтобы пользователи без полномочий root могли устанавливать вещи из репозиториев Ubuntu без необходимости вводить их пароль?
Я полностью осознаю последствия для безопасности и знаю, готов рискнуть. Fedora 12 поставляется с чем-то вроде этого. (Я полагаю, что изменив конфигурацию PolicyKit)
Можно изменить полномочия 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
Я не думаю, что в настоящее время возможно сделать так через 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, но это вне моего понимания в этой точке.
Если вам нужно только общее разрешение, чтобы разрешить / запретить установку пакета, перейдите к PolicyKit.
К сожалению, PolicyKit не имеет точного контроля над пакетом для установки. Если вы хотите дать своим пользователям разрешение на установку только ограниченного набора приложений, вам следует использовать sudo
и установить что-то вроде программных каналов ...
Я также искал что-то подобное, но так как я ничего не нашел, я кодировал это простое решение «программные каналы», доступное здесь, на GitHub
. Это очень просто. система, позволяющая обычным (не администраторам) пользователям устанавливать пакеты из ограниченных каталогов.
Просто определите «каналы» (группы пакетов) в простом текстовом файле и дайте своим пользователям разрешения на запуск программных каналов.
Они будут видеть пакеты только в каналах, соответствующих их группам UNIX.
Ответ РАОФ относится только к 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
.
Чтобы это работало в моей 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 устанавливать/удалять без пароля.