summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaércio de Sousa <laerciosousa@sme-mogidascruzes.sp.gov.br>2015-10-16 09:27:56 -0300
committerLaércio de Sousa <laerciosousa@sme-mogidascruzes.sp.gov.br>2015-10-16 09:27:56 -0300
commit0b98a383bd1dc6a733fa6817b7f1c6a3d8568d76 (patch)
tree7b2b9bc1b3d7f00433c7fcca233e83a02e138538
parent0b881b32dc1674e0c5ef1a7eb862471ee1994a0d (diff)
downloadlightdm-0b98a383bd1dc6a733fa6817b7f1c6a3d8568d76.tar.gz
Move system UID check heuristic in guest-account.sh to a new function is_system_user().
-rw-r--r--debian/guest-account.sh19
1 files changed, 14 insertions, 5 deletions
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