Могу ли я установить программу только в один каталог?

Я заинтересован в кибербезопасности и CTF, в рамках CTF вам понадобятся различные инструменты, которые помогут вам в этом. Например, John The Ripper, инструмент для взлома паролей. Я не уверен, что действительно хочу, чтобы Джон был доступен для команд из любого места на моем компьютере, я не хочу, чтобы что-то мешало. К счастью, в этом примере (я не знаю всех технических терминов, чтобы не распять меня), я установил Джона с помощью git и настроил программу только в одном каталоге, а затем выполнил команды из этого каталога. Если я сделаю «ls», он просто выдаст мне список команд, имеющихся в моем распоряжении, и я смогу работать оттуда. Есть ли эта опция для всех инструментов? Как правило, в руководствах предлагается установить pip или выполнить мгновенную установку, но, похоже, они устанавливаются на весь мой компьютер, поэтому команды из программы, которую я установил, доступны из любого места. Есть ли способ, которым я могу использовать pip или snap так, чтобы он устанавливался только в один каталог, как когда я использовал git для установки Джона?

0
задан 25 July 2019 в 14:01

2 ответа

Я интересуюсь кибербезопасностью и CTFs в CTFs, которому Вам нужно множество инструментов для помощи по пути.

Это - то, для чего виртуальная среда Python как virtualenv (python-virtualenv и python3-virtualenv). virtualenv утилита создает виртуальные экземпляры Python, каждый invokable с его собственным исполняемым файлом Python. Каждый экземпляр может иметь различные наборы модулей. Виртуальные экземпляры Python могут также быть созданы без корневого доступа.

Чтобы настроить и использовать виртуальную среду Python следуют инструкциям в том, Как настроить и использовать виртуальную среду Python в Ubuntu? или более актуальные инструкции в этом ответе.

зернышко обычно получает свои пакеты от Индекса Пакета Python (PyPI). Индекс Пакета Python (PyPI) является репозиторием программного обеспечения для языка программирования Python. Любой может загрузить их собственные пакеты Python на PyPI. Нет большого контроля на том, какие пакеты доступны в PyPI, таким образом, Ваша защита должна установить пакеты с зернышком в виртуальной среде Python вместо глобально с sudo, если Вы не абсолютно уверены, что Вы делаете. Иначе Вы потенциально предоставляете корневой доступ к программным ошибкам некоторого разработчика. Это побеждает Вашу цель установки программ ко всего одному каталогу, но что Вы получаете, в ответ больше защищенной системы, которая является тем, что необходимо хотеть с точки зрения кибербезопасности.


От: При установке пользовательских приложений, где "лучшие практики" предлагают, чтобы они были расположены?:

Иногда я устанавливаю приложения вручную, вместо того, чтобы использовать склонный или другой диспетчер пакетов. Какое местоположение (/usr/, /usr/local/, /opt/, /home/, и т.д.), предлагается "лучшими практиками" для установки пользовательских приложений?

Согласно вершине принятый ответ: Если приложение имеет make-файл, или например для приложений Python, если distutils использования приложения (например, имеет setup.py файл), или подобная система сборки/установки, необходимо установить его в /usr/local/. Это часто - поведение по умолчанию.

1
ответ дан 23 October 2019 в 09:04

Едва ли способ, которым Вы предполагаете - серийное программное обеспечение, обычно предназначается для всех пользователей.

После установки, можно переместить двоичный файл от общедоступного местоположения как/usr/bin/foo к частному местоположению как/home/USERNAME/bin/foo. И Вы можете chmod разрешение поэтому, только можно выполнить его. Однако эти действия повредятся (например), склонный: Никакие обновления пакета, никакой простой контур для очистки удаления и любой ошибки не прерывают всю способную очередь.

Считайте вместо этого любого 1) Вручную устанавливающего из источника, таким образом, можно содержать настройки, 2) Используя версии AppImage программное обеспечение, которые действительно остаются в одном месте, или 3) или Используя частный контейнер LXC/D или Используя VM, таким образом, можно использовать склонный / зернышко.

Конечно, с Python, можно также использовать 4) virtualenv (venv).

2
ответ дан 23 October 2019 в 09:04

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

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