How to capture the dynamic libraries used by a container?
Hi, I'm new to libelf, and I have two questions:
I know it is possible to use libelf to get the dynamic libraries required by an ELF binary. I would like to know if besides the name of the library, it is possible to obtain the path where they are located.
I would also like to know if it is possible to get information from the dynamic libraries used by programs running inside a container, without having to run libelf inside the container.
Answers
-
Before I answer your question I would like to point out that although I am not familiar with libelf, you could probably perform the operation you mentioned using the readelf utility in Linux. It is available by default in my PopOS! box and probably on Ubuntu aswell. So I am guessing with libelf you would also get something like this (/bin/ps is just an example):
$ readelf -d /bin/ps
Marcar o Tipo de Nome/Valor
0x0000000000000001 (NEEDED) Shared library: [libprocps.so.8]
0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]Your first question is: "How to obtain the path where the shared libraries are located?"
My answer is: just use the search utility for your operating system. You already have the names, it is as simple as using the search bar in Windows or the find command in Linux to get their location in the filesystem. For me, libprocps.so.8 was found in /usr/lib/x86_64-linux-gnu/Your second question is: "How to get information from dynamic libraries running insde a container without running the same operation on them?"
My answer is: you can't. But maybe you could share the binaries between container and host, like I explained in an answer to another question here: https://forum.linuxfoundation.org/discussion/860111/how-does-the-use-of-dynamic-libraries-shared-objects-work-in-a-container#latest0
Categories
- All Categories
- 178 LFX Mentorship
- 178 LFX Mentorship: Linux Kernel
- 775 Linux Foundation IT Professional Programs
- 384 Cloud Engineer IT Professional Program
- 175 Advanced Cloud Engineer IT Professional Program
- 75 DevOps IT Professional Program - Discontinued
- 7 DevOps & GitOps IT Professional Program
- 103 Cloud Native Developer IT Professional Program
- 7.7K Training Courses & Learning Paths
- 14 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 37 Cloud & Containers Training
- 4 Cybersecurity Training
- 3 DevOps & Site-Reliability Training
- 2 Linux Kernel Development Training
- 2 Networking Training
- 2 Open Source Best Practice Training
- 5 System Administration Training
- 1 System Engineering Training
- 6 Web & Application Development Training
- 798 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 96 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 92 Storage
- 773 Linux Distributions
- 81 Debian
- 68 Fedora
- 24 Linux Mint
- 13 Mageia
- 24 openSUSE
- 151 Red Hat Enterprise
- 32 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 472 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 103 Linux Security
- 79 Network Management
- 102 System Management
- 46 Web Management
- 168 Mobile Computing
- 32 Android
- 121 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 407 Off Topic
- 128 Introductions
- 35 Study Material
- 1.1K Programming and Development
- 311 Kernel Development
- 724 Software Development
- 1K Software
- 419 Applications
- 183 Command Line
- 5 Compiling/Installing
- 71 Games
- 320 Installation
- Archived
- 183 Small Talk
- 2 LFD140 Class Forum
- 1.4K LFS258 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)
