Как перечислить файлы пакета Deb перед установкой

Типичный вопрос перед установкой нового пакета deb в нашей системе заключается в том, какие фактические файлы были установлены и где находятся новые файлы.

Критическая ситуация возникает при замене нежелательного файла, который вы никогда не хотели заменять.

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

Мы будем использовать Ubuntu 18.04 для этой статьи, и она должна работать для всех других дистрибутивов Linux, поддерживающих пакеты deb.

Чтобы отобразить содержимое не установленного пакета, нам понадобится пакет .deb. Давайте загрузим пакет Ubuntu для нашего тестирования.

В качестве примера возьмем пакет «curl».

 # sudo wget http://archive.ubuntu.com/ubuntu/pool/main/c/curl/curl_7.58.0-2ubuntu3_amd64.deb
#  ls 

curl_7.58.0-2ubuntu3_amd64.deb DEBIAN Desktop Documents Downloads examples.desktop Music Pictures Public Templates Videos

dpkg пакеты

Мы можем захватить информацию о пакете «dpkg -I» … Но он не скажет нам содержимое.

dpkg — это менеджер пакетов для систем на базе Debian.

Чтобы просмотреть содержимое, используйте команду «—contents» или «-c» для команды dpkg.

 # dpkg -c curl_7.58.0-2ubuntu3_amd64.deb 

ИЛИ

 # dpkg-deb -c curl_7.58.0-2ubuntu3_amd64.deb 
 drwxr-xr-x root/root 0 2018-03-15 17:50 ./
drwxr-xr-x root/root 0 2018-03-15 17:50 ./usr/
drwxr-xr-x root/root 0 2018-03-15 17:50 ./usr/bin/
-rwxr-xr-x root/root 223304 2018-03-15 17:50 ./usr/bin/curl
drwxr-xr-x root/root 0 2018-03-15 17:50 ./usr/share/
drwxr-xr-x root/root 0 2018-03-15 17:50 ./usr/share/doc/
drwxr-xr-x root/root 0 2018-03-15 17:50 ./usr/share/doc/curl/
-rw-r--r-- root/root 10955 2018-01-25 01:57 ./usr/share/doc/curl/copyright
drwxr-xr-x root/root 0 2018-03-15 17:50 ./usr/share/man/
drwxr-xr-x root/root 0 2018-03-15 17:50 ./usr/share/man/man1/
-rw-r--r-- root/root 38989 2018-03-15 17:50 ./usr/share/man/man1/curl.1.gz
drwxr-xr-x root/root 0 2018-03-15 17:50 ./usr/share/zsh/
drwxr-xr-x root/root 0 2018-03-15 17:50 ./usr/share/zsh/vendor-completions/
-rw-r--r-- root/root 12851 2018-03-15 17:50 ./usr/share/zsh/vendor-completions/_curl
lrwxrwxrwx root/root 0 2018-03-15 17:50 ./usr/share/doc/curl/NEWS.Debian.gz -> ../libcurl4/NEWS.Debian.gz
lrwxrwxrwx root/root 0 2018-03-15 17:50 ./usr/share/doc/curl/changelog.Debian.gz -> ../libcurl4/changelog.Debian.gz 

Выше мы можем увидеть детали содержимого данного пакета.

Недостатки — мы должны были загрузить пакет .deb.

Чтобы узнать, из какого пакета появился определенный файл .deb:

 # sudo dpkg -S curl
libcurl3:amd64: /usr/share/doc/libcurl3/NEWS.Debian.gz
libcurl3-gnutls:amd64: /usr/share/doc/libcurl3-gnutls/changelog.Debian.gz
bash-completion: /usr/share/bash-completion/completions/curl
libpython2.7-stdlib:amd64: /usr/lib/python2.7/macurl2path.py
libcurl3:amd64: /usr/share/doc/libcurl3
python3-pycurl: /usr/share/doc/python3-pycurl
libcurl3:amd64: /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0
libcurl3-gnutls:amd64: /usr/share/doc/libcurl3-gnutls/copyright
libcurl3-gnutls:amd64: /usr/share/doc/libcurl3-gnutls/NEWS.Debian.gz
gnupg: /usr/lib/gnupg/gpgkeys_curl
python3-pycurl: /usr/lib/python3/dist-packages/curl
libcurl3:amd64: /usr/share/lintian/overrides/libcurl3
python3-pycurl: /usr/share/doc/python3-pycurl/copyright
libcurl3:amd64: /usr/share/doc/libcurl3/changelog.Debian.gz
libpython3.5-stdlib:amd64: /usr/lib/python3.5/macurl2path.py
python3-pycurl: /usr/share/doc/python3-pycurl/changelog.Debian.gz
libcurl3:amd64: /usr/share/doc/libcurl3/copyright
libcurl3:amd64: /usr/lib/x86_64-linux-gnu/libcurl.so.4
libcurl3:amd64: /usr/lib/x86_64-linux-gnu/libcurl.so.3
python3-pycurl: /usr/lib/python3/dist-packages/curl/__init__.py
python3-pycurl: /usr/lib/python3/dist-packages/pycurl.cpython-35m-x86_64-linux-gnu.so
libcurl3-gnutls:amd64: /usr/share/lintian/overrides/libcurl3-gnutls
libcurl3-gnutls:amd64: /usr/share/doc/libcurl3-gnutls
python3-pycurl: /usr/lib/python3/dist-packages/pycurl-7.43.0.egg-info
libcurl3-gnutls:amd64: /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
libcurl3-gnutls:amd64: /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.3
libcurl3-gnutls:amd64: /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.4.0
....

С помощью опции -L мы просим dpkg указать содержимое установленного пакета, указав его имя.

Чтобы просмотреть файлы, установленные пакетом:

 # sudo dpkg -L curl
/.
/usr
/usr/bin
/usr/bin/curl
/usr/share
/usr/share/doc
/usr/share/doc/curl
/usr/share/doc/curl/copyright
/usr/share/zsh
/usr/share/zsh/vendor-completions
/usr/share/zsh/vendor-completions/_curl
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/curl.1.gz
/usr/share/doc/curl/changelog.Debian.gz
/usr/share/doc/curl/NEWS.Debian.gz
...

Просмотр файлов с использованием apt-file

«apt-file» — программный пакет, в котором перечислены содержимое пакетов в ваших репозиториях и вы можете искать определенный файл среди всех доступных пакетов.

Чтобы установить ‘apt-file’:

 # sudo apt install apt-file
# sudo apt-file update 

Теперь вы можете вывести список содержимого любого пакета:

 # sudo apt-file list 

Пример 1

 

 # sudo apt-file list curl
curl: /usr/bin/curl
curl: /usr/share/doc/curl/NEWS.Debian.gz
curl: /usr/share/doc/curl/changelog.Debian.gz
curl: /usr/share/doc/curl/copyright
curl: /usr/share/man/man1/curl.1.gz
curl: /usr/share/zsh/vendor-completions/_curl 

Ниже приведен лучший способ прямого просмотра репозитория пакетов.

http://packages.debian.org/[distro_name]/all/[package_name]/filelist

Пример:

http://packages.debian.org/wheezy/all/transmission-common/filelist

Чтобы извлечь файлы, которые в some_package.deb

 # sudo mkdir some_dir

# sudo dpkg -x some_package.deb some_dir 

Пример:
Для пакета ‘curl’

 # sudo mkdir curl_control_data
# sudo dpkg -x curl_7.58.0-2ubuntu3_amd64.deb curl_control_data
# tree curl_control_data
curl_control_data/
├── control
└── md5sums

0 directories, 2 files

ar vx команда

Программа GNU ar создает, изменяет и извлекает из архивов.

Один файл, содержащий коллекцию других файлов в структуре, которая позволяет извлекать исходные отдельные файлы (называемые членами архива), называется Archive.

Проверка содержимого путем извлечения непосредственно самого файла .deb.

 # sudo ar vx curl_7.58.0-2ubuntu3_amd64.deb 

Эта команда извлекает файл .deb и генерирует следующие 3 вывода

 x - debian-binary
x - control.tar.xz
x - data.tar.xz 

GNU / tar или BSD / tar — это программа архивирования, предназначенная для хранения и извлечения файлов из архивного файла, известного как tar-файл.

Вы можете создать tar-файл или сжатый tar-файл (.tar).

Однако иногда вам нужно перечислить содержимое файла tar или tar.gz на экране перед извлечением всех файлов.

где,

t: Перечислить содержимое архива.
v: Перепрограммированные файлы списка вершин (отображение подробной информации).
z: Отфильтровать архив через gzip, чтобы мы могли открыть сжатый (распаковать) tar-файл .gz.
J: Фильтровать архив через bzip2, использовать для распаковки файлов .bz2.
f filename: Использовать архивный файл с именем filename.

 # tar -xvJf data.tar.xz
./
./usr/
./usr/bin/
./usr/bin/curl
./usr/share/
./usr/share/doc/
./usr/share/doc/curl/
./usr/share/doc/curl/copyright
./usr/share/man/
./usr/share/man/man1/
./usr/share/man/man1/curl.1.gz
./usr/share/zsh/
./usr/share/zsh/vendor-completions/
./usr/share/zsh/vendor-completions/_curl
./usr/share/doc/curl/NEWS.Debian.gz
./usr/share/doc/curl/changelog.Debian.gz

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *