Merge pull request #715 from tom-ee/improve__user-type
* explicitly check for `absent` to handle state-typos gracefully * add messaging * redirect stdout+stderr of `userdel` If no mail-spoolfile exists for the user the error reporting was visible in the cdist-run. * add new messages to man.rst * quote "remote user", ensuring `user` is handled as one parameter * fix [SC1117] (explicitly excaping `\n`)
This commit is contained in:
		
				commit
				
					
						09bd321c5c
					
				
			
		
					 2 changed files with 13 additions and 3 deletions
				
			
		| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
					# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
				
			||||||
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
 | 
					# 2011 Nico Schottelius (nico-cdist at schottelius.org)
 | 
				
			||||||
# 2013 Daniel Heule (hda at sfs.biz)
 | 
					# 2013 Daniel Heule (hda at sfs.biz)
 | 
				
			||||||
 | 
					# 2018 Thomas Eckert (tom at it-eckert.de)
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# This file is part of cdist.
 | 
					# This file is part of cdist.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -130,13 +131,17 @@ if [ "$state" = "present" ]; then
 | 
				
			||||||
          echo useradd "$@" "$name"
 | 
					          echo useradd "$@" "$name"
 | 
				
			||||||
       fi
 | 
					       fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
else
 | 
					elif [ "$state" = "absent" ]; then
 | 
				
			||||||
    if grep -q "^${name}:" "$__object/explorer/passwd"; then
 | 
					    if grep -q "^${name}:" "$__object/explorer/passwd"; then
 | 
				
			||||||
        #user exists, but state != present, so delete it
 | 
					        #user exists, but state != present, so delete it
 | 
				
			||||||
        if [ -f "$__object/parameter/remove-home" ]; then
 | 
					        if [ -f "$__object/parameter/remove-home" ]; then
 | 
				
			||||||
            echo userdel -r "${name}"
 | 
					            printf "userdel -r '%s' >/dev/null 2>&1\\n" "${name}"
 | 
				
			||||||
 | 
						    echo "userdel -r" >> "$__messages_out"
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            echo userdel "${name}"
 | 
					            printf "userdel '%s' >/dev/null 2>&1\\n" "${name}"
 | 
				
			||||||
 | 
						    echo "userdel" >> "$__messages_out"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo "Invalid state $state" >&2
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,6 +60,11 @@ mod
 | 
				
			||||||
add
 | 
					add
 | 
				
			||||||
    New user added
 | 
					    New user added
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					userdel -r
 | 
				
			||||||
 | 
					    If user was deleted with homedir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					userdel
 | 
				
			||||||
 | 
					    If user was deleted (keeping homedir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXAMPLES
 | 
					EXAMPLES
 | 
				
			||||||
--------
 | 
					--------
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue