На работе у нас есть сервер Ubuntu, к которому люди подключаются из интрасети для использования определенных инструментов, установленных там. Если определенный пользователь хочет установить определенное программное обеспечение в Ubuntu, но не имеет привилегий root, возможно ли это сделать с помощью диспетчера пакетов Ubuntu: apt-get install
? Если да, то как?
Я знаю, что другим способом было бы получить исходный код программного обеспечения, построить его самостоятельно и установить двоичный файл в домашней области пользователя, но я бы хотел избежать этого пути.
Причина, по которой мы хотели бы это разрешить:
1) Этот инструмент очень специфичен для этого проекта и не хочет устанавливать его в масштабах всей системы.
2) Нет никакого другого намерения подорвать или взломать.
Если вы имеете в виду установить частную копию с помощью apt-get, то нет.
Вы можете хитростью убедить dpkg
делать это напрямую, но это ненадежно.
Разумный метод - получить исходный код и скомпилировать локальную версию.
Однако я не вижу смысла в том, что 10 человек загружают пакет X и устанавливают его локально, используя в 10 раз больше места для хранения, чем просто правильно установили?
Некоторое обсуждение этого здесь - https://askubuntu.com/questions/339/how-can-i-install-a-package-without-root-access
Любой устанавливаемый пакет (используя apt-get
) должен быть установлен от имени привилегированного пользователя с sudo
.
Вы можете собрать пакет в своем домашнем каталоге или получить отдельный двоичный пакет, который не нужно собирать и который можно запустить сразу после распаковки.
Вы можете предоставить пользователю определенные привилегии sudo просто для использования apt-get.
Вы можете получить доступ к файлу sudoers, выполнив команду visudo. Вы захотите следовать синтаксису.
ИМЯ ХОСТА ПОЛЬЗОВАТЕЛЯ = КОМАНДА