fix #18843: usermod won't create a dir if old home does not exist

usermod only MOVE old home to new path. So create home dir by salt.
This commit is contained in:
Viet Hung Nguyen 2015-04-21 12:58:09 +07:00
parent 6890752dd3
commit c4e95b9f48

View file

@ -107,8 +107,10 @@ def _changes(name,
if home:
if lusr['home'] != home:
change['home'] = home
if createhome and not os.path.isdir(home):
change['homeDoesNotExist'] = home
if createhome:
newhome = home if home else lusr['home']
if not os.path.isdir(newhome):
change['homeDoesNotExist'] = newhome
if shell:
if lusr['shell'] != shell:
@ -375,11 +377,13 @@ def present(name,
if key == 'date':
__salt__['shadow.set_date'](name, date)
continue
if key == 'home' or key == 'homeDoesNotExist':
if createhome:
__salt__['user.chhome'](name, val, True)
else:
__salt__['user.chhome'](name, val, False)
if key == 'home':
__salt__['user.chhome'](name, val, False)
continue
if key == 'homeDoesNotExist':
__salt__['user.chhome'](name, val, True)
if not os.path.isdir(val):
__salt__['file.mkdir'](val, pre['uid'], pre['gid'], 0755)
continue
if key == 'mindays':
__salt__['shadow.set_mindays'](name, mindays)