From 0b98a383bd1dc6a733fa6817b7f1c6a3d8568d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= Date: Fri, 16 Oct 2015 09:27:56 -0300 Subject: Move system UID check heuristic in guest-account.sh to a new function is_system_user(). --- debian/guest-account.sh | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'debian') diff --git a/debian/guest-account.sh b/debian/guest-account.sh index 1815d972..09a05e30 100644 --- a/debian/guest-account.sh +++ b/debian/guest-account.sh @@ -18,6 +18,18 @@ if [ -f /etc/default/locale ]; then export LANG LANGUAGE fi +is_system_user () +{ + local UID_MIN=$(cat /etc/login.defs | grep UID_MIN | awk '{print $2}') + local SYS_UID_MIN=$(cat /etc/login.defs | grep SYS_UID_MIN | awk '{print $2}') + local SYS_UID_MAX=$(cat /etc/login.defs | grep SYS_UID_MAX | awk '{print $2}') + + SYS_UID_MIN=${SYS_UID_MIN:-101} + SYS_UID_MAX=${SYS_UID_MAX:-$(( UID_MIN - 1 ))} + + [ ${1} -ge ${SYS_UID_MIN} ] && [ ${1} -le ${SYS_UID_MAX} ] +} + add_account () { local temp_home=$(mktemp -td guest-XXXXXX) @@ -37,7 +49,7 @@ add_account () exit 1 } GUEST_UID=$(echo ${PWENT} | cut -f3 -d:) - if [ ${GUEST_UID} -ge 500 ]; then + if ! is_system_user ${GUEST_UID}; then echo "Account ${USER} is not a system user" exit 1 fi @@ -133,10 +145,7 @@ remove_account () GUEST_UID=$(echo ${PWENT} | cut -f3 -d:) GUEST_HOME=$(echo ${PWENT} | cut -f6 -d:) - SYS_UID_MIN=$(cat /etc/login.defs | grep SYS_UID_MIN | awk '{print $2}') - SYS_UID_MAX=$(cat /etc/login.defs | grep SYS_UID_MAX | awk '{print $2}') - - if [ ${GUEST_UID} -lt ${SYS_UID_MIN} ] || [ ${GUEST_UID} -gt ${SYS_UID_MAX} ]; then + if ! is_system_user ${GUEST_UID}; then echo "Error: user ${GUEST_USER} is not a system user." exit 1 fi -- cgit v1.2.1