From c08ed69429f0cd5d9ff59895ebec17fd20be43b6 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sat, 10 Nov 2018 17:48:38 +0200 Subject: [PATCH] mkusers: do not assume passwd and shadow files exist --- support/scripts/mkusers | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/support/scripts/mkusers b/support/scripts/mkusers index d00ba33823..e24cb6317b 100755 --- a/support/scripts/mkusers +++ b/support/scripts/mkusers @@ -313,7 +313,7 @@ add_one_user() { # Remove any previous instance of this user for _f in "${PASSWD}" "${SHADOW}"; do - sed -r -i --follow-symlinks -e '/^'"${username}"':.*/d;' "${_f}" + test -f ${_f} && sed -r -i --follow-symlinks -e '/^'"${username}"':.*/d;' "${_f}" done _gid="$( get_gid "${group}" )" @@ -342,13 +342,17 @@ add_one_user() { ;; esac - printf "%s:x:%d:%d:%s:%s:%s\n" \ - "${username}" "${uid}" "${_gid}" \ - "${comment}" "${_home}" "${_shell}" \ - >>"${PASSWD}" - printf "%s:%s:::::::\n" \ - "${username}" "${_passwd}" \ - >>"${SHADOW}" + if [ -f ${PASSWD} ]; then + printf "%s:x:%d:%d:%s:%s:%s\n" \ + "${username}" "${uid}" "${_gid}" \ + "${comment}" "${_home}" "${_shell}" \ + >>"${PASSWD}" + fi + if [ -f ${SHADOW} ]; then + printf "%s:%s:::::::\n" \ + "${username}" "${_passwd}" \ + >>"${SHADOW}" + fi # Add the user to its additional groups if [ "${groups}" != "-" ]; then