* 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>
(cherry picked from commit 30a923fb5c)
This commit is contained in:
2
changelogs/fragments/permission-denied-spwd-module.yml
Normal file
2
changelogs/fragments/permission-denied-spwd-module.yml
Normal file
@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user