ELIBACC
Linux / POSIXERRORNotableProcessHIGH confidence
Cannot Access a Needed Shared Library
Production Risk
Deployment error; usually caused by incorrect file permissions after manual library installation.
What this means
ELIBACC (errno 79) is returned by execve() when the dynamic linker cannot access a shared library required by the executable — typically a permissions problem on the .so file.
Why it happens
- 1Shared library file has incorrect permissions (not world-readable)
- 2Shared library is owned by root with mode 600
How to reproduce
execve() of a binary whose .so dependency is not readable.
trigger — this will error
trigger — this will error
execve("/usr/local/bin/myapp", argv, envp);
// Returns -1, errno = ELIBACC if .so not accessibleexpected output
execve: Cannot access a needed shared library (ELIBACC)
Fix
Fix shared library permissions
WHEN When ELIBACC is returned on exec
Fix shared library permissions
# Find the library and fix permissions ldd /usr/local/bin/myapp chmod a+r /path/to/libmylib.so.1 # Or chmod 755 /path/to/libmylib.so.1
Why this works
Shared libraries must be readable by all users that will run programs depending on them.
Sources
Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev