permission is checked when using shared libs to execute code in them, which is not the same as just reading the shared libs.