[Bug 1869115] Re: python sys.path different per user account - ImportError no module named (Focal)

OwN 1869115 at bugs.launchpad.net
Sat Sep 26 19:32:53 UTC 2020


This is now an issue in Ubuntu 18.04 as well.  I'm guessing whatever
broke was backported into 18.04 as well.

See these scripts as examples:

Version for 18.04 and 20.04:

https://raw.githubusercontent.com/earnolmartin/EHCP-Force-
Edition/master/ehcp/etc/pam/pam_dbauth_vsftpd_ubuntu_20_plus.py

Version for 16.04:

https://raw.githubusercontent.com/earnolmartin/EHCP-Force-
Edition/master/ehcp/etc/pam/pam_dbauth_vsftpd.py

Difference is that in 18.04 and 20.04, I must set the path in the
script:

sys.path.insert(0, '/usr/local/lib/python2.7/dist-packages')
sys.path.insert(0, '/usr/lib/python2.7/dist-packages')

If I do not, I get this error:

Sep 26 19:10:41 host /etc/security/pam_dbauth_smtp.py[9965]: Traceback (most recent call last):
Sep 26 19:10:41 host /etc/security/pam_dbauth_smtp.py[9965]:   File "/etc/security/pam_dbauth_smtp.py", line 64, in <module>
Sep 26 19:10:41 host /etc/security/pam_dbauth_smtp.py[9965]:     from passlib.hash import mysql41
Sep 26 19:10:41 host /etc/security/pam_dbauth_smtp.py[9965]: ImportError: No module named passlib.hash
Sep 26 19:10:41 host saslauthd[9965]: DEBUG: auth_pam: pam_authenticate failed: Error in service module

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to python2.7 in Ubuntu.
https://bugs.launchpad.net/bugs/1869115

Title:
  python sys.path different per user account - ImportError no module
  named (Focal)

Status in python2.7 package in Ubuntu:
  New

Bug description:
  In Ubuntu 20.04, python scripts executed by other users or users that
  cannot log in (/usr/sbin/nologin as their shell) do NOT work when
  importing modules that have been installed via python packages via apt
  or pip due to sys.path returning different values.

  For example, I have a PAM python script that is used for
  authentication, and when it is run, it fails because it cannot find
  some of the modules it needs.

  Further investigation shows that my current logged in user (running
  the script via the terminal) has a sys.path value of:

  /current/directory/user/is/in
  /usr/lib/python2.7
  /usr/lib/python2.7/plat-x86_64-linux-gnu
  /usr/lib/python2.7/lib-tk
  /usr/lib/python2.7/lib-old
  /usr/lib/python2.7/lib-dynload
  /usr/local/lib/python2.7/dist-packages
  /usr/lib/python2.7/dist-packages

  When I run the same script with another user:

  /usr/lib/python2.7 
  /usr/lib/python2.7/plat-x86_64-linux-gnu
  /usr/lib/python2.7/lib-tk 
  /usr/lib/python2.7/lib-old 
  /usr/lib/python2.7/lib-dynload

  Two critical paths are missing for this user!  They are:

  /usr/local/lib/python2.7/dist-packages
  /usr/lib/python2.7/dist-packages

  Why are these two paths not included for this particular user?

  I don't have this problem in older versions of Ubuntu.  The same
  python script works in 18.04, but fails in 20.04.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python2.7/+bug/1869115/+subscriptions



More information about the foundations-bugs mailing list