Splunk Dev

On Linux how to allow non-root users to use the splunklib Python module

sillingworth
Path Finder

After installing splunksdk on a linux server only the root user could import splunklib, other users would get

"ImportError: No module named splunklib.client" *(or .results, etc)*

The module had installed itself in:

/lib/python2.7/site-packages/setuptools-0.9.8-py2.7.egg-info

I've got it working now and will post an answer so people searching for the same issue can find it, but I'm not really happy with it - seems like a fudge. I'd like to know what people think: is this intended behaviour? Is there a better fix? Is this a mistake by Splunk, or by the people who wrote the distro or configured my server (it's running Oracle Linux Server 7), or potentially a mistake I made installing the module (if I recall correctly it was just a case of, as root, extracting the archive then running python setup.py install)?

Tags (1)
0 Karma

sillingworth
Path Finder

My solution, which works but seems less than ideal, was:

in /lib/python2.7/site-packages/:

chmod -R 755 setuptools-0.9.8-py2.7.egg-info
ln -s setuptools-0.9.8-py2.7.egg-info/splunklib splunklib
0 Karma

sillingworth
Path Finder

The fact I had to do the chmod I think points to a server config issue, probably the umask, but the second issue seems very strange. So root was looking inside setuptools-0.9.8-py2.7.egg-info whereas other users weren't. I have no idea why this would be.

0 Karma
Get Updates on the Splunk Community!

AI for AppInspect

We’re excited to announce two new updates to AppInspect designed to save you time and make the app approval ...

App Platform's 2025 Year in Review: A Year of Innovation, Growth, and Community

As we step into 2026, it’s the perfect moment to reflect on what an extraordinary year 2025 was for the Splunk ...

Operationalizing Entity Risk Score with Enterprise Security 8.3+

Overview Enterprise Security 8.3 introduces a powerful new feature called “Entity Risk Scoring” (ERS) for ...