Fix 'Permission denied' in user module while generating SSH keys (#78040)

* Fix 'Permission denied' in user module while generating SSH keys

Fix #78017
Use try/except for spwd usage to prevent "Permission denied".

Signed-off-by: Sagi Shnaidman <sshnaidm@redhat.com>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
pull/78056/head
Sergey 2 years ago committed by GitHub
parent 95df5cb740
commit 30a923fb5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,2 @@
bugfixes:
- user - Fix error "Permission denied" in user module while generating SSH keys (https://github.com/ansible/ansible/issues/78017).

@ -1052,7 +1052,17 @@ class User(object):
max_needs_change = self.password_expire_max is not None
if HAVE_SPWD:
shadow_info = spwd.getspnam(self.name)
try:
shadow_info = spwd.getspnam(self.name)
except KeyError:
return None, '', ''
except OSError as e:
# Python 3.6 raises PermissionError instead of KeyError
# Due to absence of PermissionError in python2.7 need to check
# errno
if e.errno in (errno.EACCES, errno.EPERM, errno.ENOENT):
return None, '', ''
raise
min_needs_change &= self.password_expire_min != shadow_info.sp_min
max_needs_change &= self.password_expire_max != shadow_info.sp_max

Loading…
Cancel
Save