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

45

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

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

    
задан snostorm 28.07.2010 в 21:21
источник

4 ответа

36

Вы можете изменить разрешения PolicyKit, чтобы позволить пользователям получить доступ к бэкенду aptdaemon, который использует Центр Software Center.

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 позволит любому пользователю войти на локальный компьютер для установки пакетов после ввода собственного пароля (даже если они не входят в группу администратора) и обновить кеш пакетов без ввода пароля.

[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
    
ответ дан RAOF 29.07.2010 в 04:37
источник
10

Я не думаю, что в настоящее время это возможно сделать с помощью графического интерфейса, но следующее должно работать, хотя и быть немного клочковым. 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, но на данный момент это невозможно понять.     

ответ дан lfaraone 28.07.2010 в 21:45
5

ответ RAOF применяется только к Ubuntu. Kubuntu использует QAptWorker в качестве backend (наблюдается для 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 .

    
ответ дан Lekensteyn 13.11.2011 в 14:48
5

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

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

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

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

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

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

    
ответ дан Alfonso E.M. 20.02.2013 в 11:44