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

При установке приложений через центр программного обеспечения или с помощью файла DEB они обычно устанавливаются в масштабе всей системы для всех пользователей.

Есть ли способ установить приложение только для одного пользователя?

33
задан 26 April 2014 в 23:12

6 ответов

Ну, dpkg вам не поможет, так как это не является его целью. Он хочет быть единственной переписью пакетов, установленных в системе.

Единственное, что приходит на ум, - это просто извлечь пакет и попытаться поместить файлы вручную в домашнюю директорию.

Однако это будет работать только для некоторых вещей. Множество пакетов разбиты на куски (исполняемые файлы или скрипты в /usr/bin, библиотеки в /lib и другие наряды в /usr/share и т. Д.), И эти места жестко запрограммированы скриптами сборки. Таким образом, если вы попытаетесь вставить что-то подобное в ~, оно сломается. Вы могли бы часами разматывать зависимости, но вы могли бы сделать что-то полезное в свое время, например, найти лекарство от рака или впитать в себя часть красоты мира.

Тебе было бы гораздо лучше просто взять неупакованную версию от того, кто пишет программное обеспечение. Почти все свободное программное обеспечение доступно в виде сжатого архива в виде исходного кода, так что хватайте его и просто создавайте. Вы не делаете шаг make install. Ваше приложение создано, просто поместите его туда, куда хотите.

0
ответ дан 26 April 2014 в 23:12

Вы можете изменить владельца исполняемого файла, чтобы только один пользователь мог его запустить. Затем, при необходимости, вы можете удалить приложение из меню других пользователей.

0
ответ дан 26 April 2014 в 23:12

Вероятно, вы можете использовать опцию --root dpkg для установки в другой каталог. Но, вероятно, возникнут проблемы, если приложение будет искать вещи в фиксированных местах, таких как /etc.

Короче говоря, я не думаю, что есть легкий путь.

0
ответ дан 26 April 2014 в 23:12

Сомнительный.

Дебами в основном являются архивы , которые извлекаются в корень вашей файловой системы при установке (плюс некоторая конфигурация). Если вы хотите установить их только для одного пользователя, вам нужно как-то установить их в папку / home / user. Даже если бы вы сделали это, они бы не работали, как, например, двоичные файлы приложения не будут помещены в / usr / bin (или что-то подобное), и система не найдет их, если вы попытаетесь их запустить. Точно так же библиотеки и т. Д. Были бы бесполезны, так как система не знала бы, что они находятся где-то в / home. Вы можете попробовать подход методом грубой силы и настроить переменную PATH так, чтобы она указывала, куда вы извлекли файлы из архива deb, но это не только ОЧЕНЬ небезопасно, но может может вызвать проблемы с совместимостью (например, пункты меню не будут работать, так как GNOME расширяет файлы .desktop, чтобы они были в /usr/share/applications).

Более того, если вы установили пакет только для некоторых пользователей, это может привести к сумасшедшим проблемам с зависимостями, если какой-либо другой пакет, установленный пользователем, конфликтует с другим, который вы установили только для себя - и, возможно, с множеством других проблем, связанных с управлением пакетами. появится.

Все эти проблемы чрезвычайно затрудняют управление пакетами отдельно для пользователей, поэтому кажется, что невозможно установить их только для одного пользователя, потому что идея, лежащая в основе .debs, не позволяет этого.

0
ответ дан 26 April 2014 в 23:12

Я не знаю слишком много об этом предмете, но кажется из других ответов, что Вы можете устанавливать пакет на другом каталоге вместо / с dpkg, использование --root параметр, и затем делает a chroot к dir, в котором был "установлен" пакет (который может, конечно, быть dir в корневом каталоге пользователя).

Устанавливать пакет для пользователя кроме root, могло бы быть возможно использовать вышеупомянутый процесс с fakechroot вместо chroot.

Отказ от ответственности: Я не попробовал это и не имею большого опыта во время записи с dpkg или chroot, но от того, что я действительно знаю об этих инструментах, просто мог бы работать этот процесс.

Ссылки, которые имеют информацию, которая может быть полезна для людей, которые хотят достигнуть эффекта chroot без root возможности:

Обновление

Я теперь сделал немного с вещами, которые затрагивают этот предмет и узнали еще немного...

Фрагменты (стандартные блоки окружения):

  • Fakechroot - эмулирует chroot(1)
  • Debootstrap - Создайте другую иерархию файловой системы Debian в каталоге
  • Fakeroot-NG/fakeroot - Может симулировать быть, поддерживают некоторые вещи
  • EmDebian - debian вариант, который использует меньше пространства и часто используется в chroot средах
  • binfmt_misc - Может петлять, с помощью их интерпретаторов, как будто они - собственные двоичные файлы; полезный вместе с qemu-пользователем для работы с двоичными файлами (или в (фальшивке) chroot) внешней архитектуры (scripts/qemu-binfmt-conf.sh то, которое идет с исходным кодом QEMU, автоматизирует это),
  • Пространство пользователя Qemu - Может выполнить двоичные файлы другой архитектуры; может использоваться с некоторыми из этих инструментов, когда они не поддерживают некоторые архитектуры процессора
  • LwIP - Сетевой стек TCP/IP, который может быть выполнен от пространства пользователя

Полный (завершают поставщиков окружения):

Сводка: Путем эмуляции, или на самом деле наличие, полномочия пользователя root локально, пакеты DEB могут быть установлены для окружения.

6
ответ дан 26 April 2014 в 23:12

В зависимости от того, чего вы хотите достичь, могут быть разные способы сделать эту работу (или, по крайней мере, дать хакерское подобие нужной вам функциональности).

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

Независимо от того, говорите ли вы о предоставлении доступа к принтерам или разрешаете пользователю запускать программы в определенном каталоге, есть способы сделать это, и хотя они могут быть встроены в Ubuntu, решения такого типа обычно (конечно) будет добавлено после факта установки .deb.

Вот два основных класса управления после установки, которые можно добавить. Обратите внимание, что при условии правильной среды, например, когда жестко контролируется групповая политика, это может быть проще, если у вас есть базовая система. Такие разрешения могут даже быть привязаны к LDAP или аналогичной системе, которая может предоставлять аутентификацию и авторизацию для каждого пользователя или группы.

Контроль видимости
У меня была, возможно, несколько похожая ситуация, но в моем случае пользователи были (пока) не очень искушенными (все они были младше 7 лет) старый). Для меня просто скрывать меню Gnome и / или удалять настольные программы запуска.

Удаление исполняемого бита из каталогов устраняет способность процессов искать или проходить их. Это может эффективно сделать их невидимыми, а с точки зрения пользователя - сделать их недоступными. Если у вас есть системная политика по умолчанию, которая создает меню, например, на основе доступа к файлам, вы можете использовать этот вид косметического решения, а затем запустить его для последующих установок без особых дополнительных усилий.

Контроль выполнения
Управление ресурсом можно осуществлять с помощью разрешений Unix, профилей оборудования, разрешений SELinux и т. Д. В зависимости от приложения могут присутствовать другие уровни фильтрации управления. В отсутствие более целенаправленных решений вам, возможно, придется написать обертки вокруг определенных программ для контроля доступа пользователей или процессов.

0
ответ дан 26 April 2014 в 23:12

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

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