Как собрать приложение без прав sudo?
Что мне нужно настроить на сервере Ubuntu 9.10, чтобы пользователь мог создавать там приложения по своему выбору (т.е. ./configure, make && make install) без необходимости использования привилегий sudo/admin.
Я просто чувствую, что это немного рискованно с точки зрения безопасности, когда пользователь получает доступ к тем частям системы, которые ему могут не понадобиться для создания приложения.
3 ответа
Если ваши пользователи используют
./configure --prefix=/home/user/opt/
Или для проектов cmake
cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/
Это установит программу с этим префиксом (вместо значения по умолчанию /usr/local/), и ваши пользователи смогут запустить программу следующим образом:
/home/user/opt/bin/program
Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить /home/user/opt/bin
в переменную окружения path отредактируйте файл.profile пользователей и добавьте следующую строку:
export PATH=/home/user/opt/bin:$PATH
Обратите внимание, что программы, установленные таким образом, будут приватными для конкретного пользователя, но это способ сделать это
Пользователи могут создавать приложения без прав sudo. Единственный раз, когда вам нужны права sudo, это когда вы хотите установить что-то в системные каталоги.
./configure
а также make
работать всегда без права sudo. make install
обычно нужны права sudo, потому что приложение будет установлено на /usr/local
или же /usr
(иногда /opt
).
Однако, если вы измените префикс для пути установки (т.е. ./configure --prefix=~/usr/local
) таким образом, что установка будет выполняться внутри дерева домашних каталогов пользователя, права sudo не требуются для make install
,
В дополнение к тому, что сказал txwikinger, вы можете также проверить fakeroot
, что дает возможность для сборки.deb пакетов с dpkg
без необходимости повышенных привилегий. Конечно, для их установки обычно требуется доступ sudo.