Какие меры предосторожности следует принимать с помощью .debs, которые я нашел в Интернете?

Щелкните правой кнопкой мыши на соответствующей папке, а затем перейдите Ubuntu One > Hide Ribbon

29
задан 23 January 2012 в 02:12

2 ответа

Что следует учитывать:

Насколько хорошо известен сайт? Например, это был случайный блог, который был включен в рекламу, был ли он случайным пользователем на каком-то форуме или был ли он известным, уважаемым сайтом? Что он требует установки? Например, он требует установить ядро ​​или набор значков, но это только 1 МБ большой? Как «важно», что у вас есть содержимое этого .deb?

Способы проверки вещей надежно:

Я использую arkose (его в стандартном репозитории) песочницу с моими deb (и другими вещами) - используйте ее примерно так:

sudo arkose -n -c "cd $PWD; $SHELL"

Что это дает мне «песочницу» (иначе известную как «YAY I CAN SCREW UP!») с возможностью копирования на запись ко всему на моем компьютере , включая мой домашний каталог - так что, если неприятный противный .deb делает sudo rm -rf /*, я НЕ ЛЮБЛЮ ЛЮБОЙ ДАННЫХ!

Еще одна вещь, которая недостаточно подчеркнута, - это LOSE ЛЮБЫЕ ДАННЫЕ! . Это очень полезно, и arkose

Короче говоря, просто убедитесь, что вы об этом подумали, и не просто загружайте случайный deb и установите его. [!d21 ]

32
ответ дан 25 May 2018 в 14:58
  • 1
    Откройте .deb с помощью ролика с файлами, чтобы увидеть, что внутри. Хотя я должен сказать, что я загрузил случайный deb от случайного пользователя в случайном потоке на форумах Ubuntu, чтобы исправить мои проблемы с моим принтером, это сработало. – Uri Herrera 23 January 2012 в 02:26

Если вы загружаете пакет из ненадежных или сомнительных источников, параноик. На популярных форумах, таких как ubuntuforums.org, если пользователь делает свой первый пост, содержащий только короткий текст, например «установите это, работает для меня!», А затем ссылку, будьте осторожны с этой ссылкой и / или инструкциями. [!d0 ]

Не используйте бинарные пакеты, если это возможно, особенно из ненадежных источников. Получите исходный код (для официальных пакетов Ubuntu это можно сделать с помощью apt-get source package-name) и посмотрите на него.

Если пакет невелик, возможно, стоит его проанализировать. Я предпочитаю использовать терминал для этого, потому что у меня есть быстрый доступ к другим мощным средствам командной строки, таким как ls, find, file, less, vim, grep, sed, dpkg и много других. Используйте [

для загрузки файла .deb, вы можете использовать браузер, но копируя ссылку, а затем используйте [ f16] быстрее, поскольку вы уже можете экспериментировать с ним.

$ mkdir /tmp/foo && cd /tmp/foo
$ wget http://nl.archive.ubuntu.com/ubuntu/pool/main/n/nvidia-common/nvidia-common_0.2.35_amd64.deb

Затем пришло время проверить сам файл. less (через lesspipe) может предоставить краткий обзор содержимого файла. Клавиши со стрелками, страница вверх / вниз, home / end могут быть полезны для навигации, Tab завершает работу программы.

$ less nvidia-common_0.2.35_amd64.deb
nvidia-common_0.2.35_amd64.deb:
 new debian package, version 2.0.
 size 10802 bytes: control archive= 1877 bytes.
     197 bytes,    11 lines   *  config               #!/bin/sh
     703 bytes,    16 lines      control              
     741 bytes,    10 lines      md5sums              
     163 bytes,     9 lines   *  postinst             #!/bin/sh
     206 bytes,     8 lines   *  postrm               #!/bin/sh
     827 bytes,    38 lines   *  preinst              #!/bin/sh
     263 bytes,    14 lines   *  prerm                #!/bin/sh
     365 bytes,    12 lines      templates            
 Package: nvidia-common
 Version: 1:0.2.35
 Architecture: amd64
 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
 Installed-Size: 156
 Pre-Depends: dpkg (>= 1.15.7.2)
 Depends: python2.7 | python2.6, python (>= 2.7.1-0ubuntu2), python (<< 2.8), debconf (>= 0.5.00) | debconf-2.0, pciutils, python-apt
 Conflicts: nvidia-180-modaliases, nvidia-185-modaliases, nvidia-current-modaliases
 Replaces: nvidia-180-modaliases, nvidia-185-modaliases, nvidia-current-modaliases
 Section: admin
 Priority: optional
 Description: Find obsolete NVIDIA drivers
  This package will find obsolete NVIDIA drivers in use,
  detect the hardware and recommend the most appropriate
  driver.
 Python-Version: 2.6, 2.7

*** Contents:
drwxr-xr-x root/root         0 2011-09-07 11:06 ./
drwxr-xr-x root/root         0 2011-09-07 11:06 ./usr/
drwxr-xr-x root/root         0 2011-09-07 11:06 ./usr/share/
drwxr-xr-x root/root         0 2011-09-07 11:06 ./usr/share/doc/
drwxr-xr-x root/root         0 2011-09-07 11:06 ./usr/share/doc/nvidia-common/
-rw-r--r-- root/root      1174 2011-09-07 11:07 ./usr/share/doc/nvidia-common/changelog.gz
-rw-r--r-- root/root       466 2011-06-24 14:45 ./usr/share/doc/nvidia-common/copyright
...

После этого вы получаете обзор зависимостей пакета и какие файлы он может содержать. Время для извлечения файлов и анализа содержимого с помощью dpkg-deb. Первая команда извлекает дерево файлов во вновь создаваемом каталоге fs, вторая извлекает его в DEBIAN, потому что не указана другая цель:

$ dpkg-deb -x nvidia-common_0.2.35_amd64.deb fs
$ dpkg-deb -e nvidia-common_0.2.35_amd64.deb

Мы снова будем использовать less для анализа содержимого сценариев поддержки (то есть файлов, которые будут использоваться / выполняться во время установки (и удаления). prerm, preinst, postrm, postinst - это сценарии, выполняемые до / после удаления / установки, которые являются наиболее важными файлами для анализа. Используйте :n и :p для переключения между файлами. Нажимая =, вы получаете текущее имя файла и номер строки, а также количество файлов, которые находятся в списке.

$ less DEBIAN/*

Если скрипты пакетов выглядят разумно, пришло время проанализировать установленное содержимое (использовать вкладку-завершение). Для сценариев оболочки и интерпретируемых скриптов (например, Python) анализ проще (если вы считаете,

$ less fs/usr/bin/nvidia-detector    # fs<TAB><TAB>/usr/ <TAB><TAB>bin ...
$ less fs/usr/lib/nvidia/pre-install
$ ls -la fs/usr/lib     # quickly check the directory contents, my memory is weak
drwxr-xr-x 5 peter peter 100 2011-09-07 11:06 .
drwxr-xr-x 5 peter peter 100 2011-09-07 11:06 ..
drwxr-xr-x 2 peter peter  60 2011-09-07 11:06 nvidia
drwxr-xr-x 3 peter peter  60 2011-09-07 11:06 python2.6
drwxr-xr-x 3 peter peter  60 2011-09-07 11:06 python2.7
$ # I conclude: python2.6 is not a symlink to python2.7
$ less fs/usr/lib/python2.7/dist-packages/NvidiaDetector/*
press 'v' to open an editor (e.g. nano, vim) to get syntax highlighting if preferable

Обратите особое внимание на файлы конфигурации, особенно если они используют такие каталоги, как /etc/init (для сценариев запуска) или /etc/modprobe.d (параметры для l ядро).

Для двоичных файлов ldd может дать представление о том, для чего может быть использована программа. Следующая программа выглядит как графическая программа, использующая OpenGL.

$ ldd /usr/bin/glxgears
    linux-vdso.so.1 =>  (0x00007fff7d3ff000)
    libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007fa2ead11000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa2eaa8d000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa2ea754000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa2ea3b5000)
...

После того, как вы уверены, что пакет выглядит действительным, вы можете установить его в VirtualBox, загружающемся с Live CD, и использовать ps aux , top, strace -f -o logfile.txt programname для дальнейшего анализа.

20
ответ дан 25 May 2018 в 14:58

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

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