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
- 175 LFX Mentorship
- 175 LFX Mentorship: Linux Kernel
- 745 Linux Foundation IT Professional Programs
- 372 Cloud Engineer IT Professional Program
- 168 Advanced Cloud Engineer IT Professional Program
- 73 DevOps IT Professional Program - Discontinued
- 3 DevOps & GitOps IT Professional Program
- 98 Cloud Native Developer IT Professional Program
- 7.6K Training Courses & Learning Paths
- AI & ML Training
- Blockchain & Decentralized Identity Training
- 2 Cloud & Containers Training
- Cybersecurity Training
- DevOps & Site-Reliability Training
- Linux Kernel Development Training
- Networking Training
- Open Source Best Practice Training
- System Administration Training
- System Engineering Training
- Web & Application Development Training
- 792 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 95 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 87 Storage
- 768 Linux Distributions
- 81 Debian
- 67 Fedora
- 22 Linux Mint
- 13 Mageia
- 24 openSUSE
- 150 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 465 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 98 Linux Security
- 78 Network Management
- 101 System Management
- 46 Web Management
- 106 Mobile Computing
- 18 Android
- 73 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 392 Off Topic
- 121 Introductions
- 181 Small Talk
- 29 Study Material
- 946 Programming and Development
- 310 Kernel Development
- 618 Software Development
- 981 Software
- 373 Applications
- 182 Command Line
- 5 Compiling/Installing
- 68 Games
- 317 Installation
- Archived
- 2 LFD140 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)
