Відповіді:
Залежно від того, що ви хочете виконати, можуть бути різні способи зробити цю роботу (або принаймні надати шалений вигляд потрібної функціональності).
Встановлення програмного забезпечення багато в чому зводиться до надання доступних ресурсів або доступу до речей, які вже є в системі.
Якщо ви говорите про надання доступу до принтерів або дозволити користувачеві виконувати програми в певному каталозі, існують способи цього досягти, і хоча вони можуть бути рідними для Ubuntu, такі рішення зазвичай (звичайно) збираються буде додано після встановлення .deb.
Ось два загальні класи керування після встановлення, які можна додати. Зауважте, що, враховуючи правильне середовище, наприклад, коли діє чітко контрольована групова політика, це може бути простішим після створення базової системи. Цей вид дозволу може бути навіть прив’язаний до LDAP або подібної системи, яка може дати аутентифікацію та авторизацію для кожного користувача або групи.
Контроль візуальності
У мене була, можливо, дещо схожа ситуація, але в моєму випадку користувачі не були (ще) не дуже складними (всім їм було менше 7 років). Для мене спрацьовувало лише приховування меню Gnome та видалення пускових систем на робочому столі.
Видалення виконуваного біта з каталогів виключає можливість процесів їх пошуку або обходу. Це може ефективно зробити їх невидимими, а для користувачів - зробити їх недоступними. Якщо у вас є системна політика за замовчуванням, яка створює меню на основі доступу до файлів, наприклад, ви можете отримати таке косметичне рішення на місці, а потім змусити його працювати для наступних установок з невеликими додатковими зусиллями.
Контроль виконання Контроль над ресурсом можна здійснювати за допомогою дозволів Unix, профілів apparmor, дозволів SELinux тощо. Можливо, існують інші рівні фільтрації керування, які можуть вступати в гру залежно від програми. За відсутності більш націлених рішень, вам, можливо, доведеться писати обгортки навколо певних програм, щоб контролювати доступ користувача або процесу.
Ну dpkg
не допоможе вам, оскільки це не його мета дизайну. Він хоче бути єдиним переписом пакетів пакетів, встановлених у системі.
Єдине, що вам спадає на думку, - це просто витягнути пакет і спробувати розмістити файли вручну в домашньому режимі.
Однак це буде працювати лише для деяких речей. Багато пакунків розбиваються на шматки (виконувані файли або сценарії /usr/bin
, бібліотеки в /lib
та інше вбрання /usr/share
тощо), і ці місця жорстко кодуються сценаріями складання. Таким чином, якщо ви спробуєте втягнути щось подібне ~
, воно зламається. Ви можете витратити години на розмотування залежностей, але можете зробити щось корисне зі своїм часом, наприклад, знайти ліки від раку або поглинати частину краси у світі.
Ви б краще зробити просто взяти непакетовану версію від того, хто пише програмне забезпечення. Практично все безкоштовне програмне забезпечення доступне в якомусь стисненому архіві як джерело, тому захопіть це та просто побудуйте його. Ви не зробите make install
кроку. Ваш додаток побудовано, просто покладіть його там, де ви хочете.
/etc/init
, шукає конфігураційні файли /etc
або має жорсткі коди.
./configure --prefix=$HOME/local
.
Я не дуже багато знаю про цю тему, але мені здається , з інших відповідей , які ви можете встановити пакет в інший каталог замість /
з dpkg
, використовуючи --root
параметр, а потім зробити chroot
в директорію якої пакет був " встановлено "в (що, звичайно, може бути dir у домашній директорії користувача).
Щоб встановити пакет для іншого користувача root
, можливо, можна використовувати вищезазначений процес, fakechroot
а не chroot
.
Відмова від відповідальності : Я не пробував це, і не мають великого досвіду роботи на момент написання з dpkg
або chroot
, але від того, що я дійсно знаю про ці інструменти, цей процес тільки може працювати.
Посилання, які містять інформацію, яка може бути корисною людям, які хочуть досягти ефекту chroot
без root
можливостей:
chroot
fakechroot
)Зараз я трохи попрацював з речами, які стосуються цієї теми, і дізнався ще дещо ...
Фрагменти (локальні будівельні блоки):
chroot(1)
Повний (повний локальний постачальник довкілля):
chroot(1)
, mount --bind
, binfmt_misc
і працюють бінарні програми з інших архітектур , використовуючи для QEMU просторів передКороткий зміст : Емулюючи або фактично маючи кореневі привілеї локально, пакети DEB можуть бути встановлені для локального середовища.
Можливо, ви можете скористатися --root
опцією dpkg
інсталяції в інший каталог. Але, ймовірно, виникнуть проблеми, якщо програма шукатиме речі у фіксованих місцях /etc
.
Якщо коротко, я не думаю, що існує простий шлях.
Ви можете змінити право власності на виконуваний файл, щоб лише один користувач міг запустити його. Потім, якщо потрібно, ви можете видалити програму з меню інших користувачів.
~/bin
. У цьому питанні існує неоднозначність щодо того, чи хоче Takkat обмежувати доступ / видимість багатокористувацького додатку, чи хоче він встановити однокористувацьку програму. У ваших питаннях та домовленостях використовується перша інтерпретація, а решта припускають останню.
Сумнівні.
Деб - це в основному архіви, які під час встановлення витягуються до кореня вашої файлової системи (плюс деякі конфігурації). Якщо ви хотіли встановити їх лише для одного користувача, вам потрібно було б якось встановити їх у папку / home / user. Навіть якщо ви зробили це, вони не працюватимуть, оскільки бінарні програми fe не приземляться в / usr / bin (або що-небудь подібне), і система їх не знайде, якщо ви спробуєте запустити їх. Аналогічно, бібліотеки тощо були б марними, оскільки система не знала, що є десь у / home. Ви можете спробувати підхід грубої сили та налаштувати змінну PATH, щоб вказувати, куди ви витягли файли з архіву deb, але це було б не тільки ДУЖЕ небезпечно, але це може спричинити проблеми із сумісністю (записи меню fe не працюватимуть, оскільки GNOME розширює .desktop файли в / usr / share / застосунках).
Більше того, якщо ви встановили пакунок лише для деяких користувачів, це може спричинити шалені проблеми залежностей, якщо будь-який інший встановлений користувачем пакет, що конфліктує з іншим, який ви встановили лише для себе, - і, можливо, з'явиться багато інших проблем, пов'язаних з управлінням пакетом.
Усі ці неприємності вкрай важко керувати пакетами окремо для користувачів, тому, здається, встановити їх неможливо лише для одного користувача, оскільки ідея, що стоїть за .debs, це відключає.