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
  1. 1Shared library file has incorrect permissions (not world-readable)
  2. 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 accessible

expected 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.

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All Linux / POSIX errors