Как установить программу локально без sudo полномочий?

Сделать grep UID_MIN /etc/login.defs. Затем сделайте getent passwd и посмотрите, у каких пользователей есть UID> = значение UID_MIN сверху.

Объяснение: Каждый раз, когда пользователь вручную добавляется, это захватывает первый доступный UID> = значение UID_MIN от login.defs (если UID вручную не указан),

76
02.11.2014, 20:13
4 ответа
  1. Скомпилируйте и установите в ~/bin (и редактирование Ваш .bashrc установить PATH включать его). библиотеки могут так же быть скомпилированы и установлены в ~/lib (набор LD_LIBRARY_PATH указать на него), и заголовки разработки может быть установлен в, например. ~/includes.

  2. В зависимости от определенных деталей программ Вы хотите установить и библиотеки, от которых они зависят, можно загрузить .deb файлы и использование'dpkg-deb -x'для извлечения их под корневым каталогом. У Вас затем будет большая "забава", устанавливающая PATH, LD_LIBRARY_PATH, и другой variables. Чем более сложный программа или приложение, которое Вы устанавливаете, тем более забавны Вы возрастете для :)

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

    Точно так же демоны и системные службы, которые ожидают работать как определенное UID или имейте способность изменить uid или ожидать, что файлы будут в /etc скорее ~/etc и так далее, вероятно, не будут работать хорошо, если вообще.

  3. Большинство системных администраторов рассмотрело бы mc и mcedit быть "главным образом безопасными", безвредными программами.

    Очень немногие, однако, полагали бы, что установка клиента потока безопасна, особенно если они должны заплатить за пропускную способность или закончить тем, что были юридически ответственны. Большинство системных администраторов, вероятно, не было бы совершенно радо за конечных пользователей установить такое программное обеспечение без разрешения. Они могут сказать "уверенный, идти вперед, вывести себя из строя", или они не могут..., но необходимо спросить о чем-либо, что может вызвать проблемы для владельцев/администраторов машины.

35
27.01.2020, 19:31
  • 1
    , я услышал ту установку LD_LIBRARY_PATH злой взлом. Это применяется здесь также, или я неправильно понял? –  Will Vousden 10.02.2016, 15:59
  • 2
    Все проблемы с установкой LD_LIBRARY_PATH применяются. да, это или может быть, злой взлом. иногда злые взломы необходимы для достижения конкретных целей... решающая вещь, когда нарушение "правил" должно знать, что они достаточно хорошо знают то, что они разработаны для сохранения Вас от, и точно почему необходимо повредить их в данном случае, и что риски или могли бы быть. –  cas 11.02.2016, 01:42

Необходимо скомпилировать их из источника. Это должен просто быть вопрос

apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install

Двоичный файл был бы затем расположен в ~/myapps/bin. Так, добавьте export PATH="$HOME/myapps/bin:$PATH" к Вашему .bashrc файл и перезагрузка .bashrc файл с source ~/.bashrc. Конечно, это предполагает, что gcc установлен в системе.

52
27.01.2020, 19:31
  • 1
    Что относительно зависимостей? Там путь состоит в том, чтобы обработать их автоматически, не выполняя тот же код для каждого из них? –  yura 08.07.2012, 07:34
  • 2
    @yura не необходимо сделать это сами. –  Ulrich Dangel 08.07.2012, 11:00
  • 3
    @yura не необходимо сделать это сами. –  Ulrich Dangel 08.07.2012, 11:00

Вы можете использовать Junest , который создает небольшой контейнер Linux в каталоге пользователя, где вы Может установить любые пакеты.

5
27.01.2020, 19:31

Я столкнулся с той же проблемой, вот как я быстро ее исправил, предполагая, что у вас есть сервер Linux с той же ОС и архитектурой.

  1. Установите программное обеспечение в системе, которой вы управляете

  2. Найдите исполняемый пример which pythonи скопируйте его в~/

  3. Скопируйте библиотеки с помощью:

    ldd "$(which python)"  | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ~/
    

Перенесите исполняемый файл и библиотеки в другую систему, где у вас есть только локальные привилегии, затем выполните следующее:

mkdir ~/lib
export PATH="$PATH:~/lib"
export LD_LIBRARY_PATH=~/lib:/lib:/usr/lib

Это создаст папку ~/libдля хранения библиотек, добавит ее к вашему пути и укажет LD посмотреть библиотеки там, так что просто добавьте туда свои исполняемые файлы и библиотеки, теперь вы можете запускать их по своему усмотрению. г в другом месте

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

2
20.08.2021, 13:24

Теги

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