|
|
#!/usr/bin/env bash
|
|
|
|
|
|
ENABLED=yes
|
|
|
[[ ${ENABLED} != "yes" ]] && exit 0
|
|
|
DEBUGMODE=no
|
|
|
|
|
|
SOURCE=/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
|
|
|
SOURCE=/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
|
|
|
debug_mode "$0" "$@"
|
|
|
|
|
|
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
|
|
SOURCE=${SYSCONF}/kiosk; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
|
|
|
|
|
## Режим киоска XFCE4, запретить изменять параметры пользователям и группам
|
|
|
## XFCE4_KIOSK[<channel>:<property>]=<user_groups>
|
|
|
## <user_groups> # Пользователи и группы, варианты значений:
|
|
|
## =ALL # Разрешить всем
|
|
|
## =NONE # Запретить
|
|
|
## =@whell,@users # Разрешить группам
|
|
|
## =superadmin,user-1 # Разрешить пользователям
|
|
|
## =@wheel,user-1 # Разрешить группе и пользователю
|
|
|
#XFCE4_KIOSK[xfce4-panel:CustomizePanel]=@wheel
|
|
|
|
|
|
KIOSKRC="/etc/xdg/xfce4/kiosk/kioskrc"
|
|
|
if [[ ${#XFCE4_KIOSK[@]} -ne 0 ]]; then
|
|
|
[[ -d ${KIOSKRC%/*} ]] || install -dm0755 -o root -g root "${KIOSKRC%/*}"
|
|
|
true > ${KIOSKRC}
|
|
|
for SELECT in "${!XFCE4_KIOSK[@]}"; do
|
|
|
SECTION=$(cut -d: -f1 <<< ${SELECT})
|
|
|
PROPERTY=$(cut -d: -f2 <<< ${SELECT})
|
|
|
VALUE=${XFCE4_KIOSK[${SELECT}]}
|
|
|
[[ ${VALUE,,} == "none" ]] && VALUE=NONE
|
|
|
[[ ${VALUE,,} == "all" ]] && VALUE=ALL
|
|
|
[[ ${VALUE} =~ '@' ]] && VALUE=$(tr '@' '%' <<< ${VALUE})
|
|
|
grep -q "${SECTION}" ${KIOSKRC} || echo -e "[${SECTION}]\n" >> ${KIOSKRC}
|
|
|
sed "/^${PROPERTY}.*/d" -i ${KIOSKRC}
|
|
|
sed "/\[${SECTION}\]/a ${PROPERTY}=${VALUE}" -i ${KIOSKRC}
|
|
|
done
|
|
|
fi
|
|
|
|
|
|
## Назначить настройки киоска XFCE4 пользователям
|
|
|
## XFCE4_KIOSK_USER_LOCKED=disable
|
|
|
## disable # Снять все ограничения
|
|
|
## XFCE4_KIOSK_USER_LOCKED=<user_groups>
|
|
|
## <user_groups> # Пользователи и группы, варианты значений:
|
|
|
## =* # Все пользователи
|
|
|
## =@whell;@users # Указанные группы
|
|
|
## =superadmin;user-1 # Указанным пользователям
|
|
|
## =@wheel;user-1 # Указанным группам и пользователям
|
|
|
## XFCE4_KIOSK_USER_LOCKED="*"
|
|
|
|
|
|
## Назначить исключения настроек киоска XFCE4 пользователям
|
|
|
## XFCE4_KIOSK_USER_UNLOCKED=disable
|
|
|
## disable # Снять все ограничения
|
|
|
## XFCE4_KIOSK_USER_UNLOCKED=<user_groups>
|
|
|
## <user_groups> # Пользователи и группы, варианты значений:
|
|
|
## =* # Все пользователи
|
|
|
## =@whell;@users # Указанные группы
|
|
|
## =superadmin;user-1 # Указанным пользователям
|
|
|
## =@wheel;user-1 # Указанным группам и пользователям
|
|
|
## XFCE4_KIOSK_USER_UNLOCKED="root,@wheel"
|
|
|
|
|
|
PATH_XDG_XFCE_CHANNEL="/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/"
|
|
|
PARAM_LOCKED=
|
|
|
PARAM_UNLOCKED=
|
|
|
if [[ -n ${XFCE4_KIOSK_USER_LOCKED} || -n ${XFCE4_KIOSK_USER_UNLOCKED} ]]; then
|
|
|
if [[ ${XFCE4_KIOSK_USER_LOCKED} == "disable" || ${XFCE4_KIOSK_USER_UNLOCKED} == "disable" ]]; then
|
|
|
for FILE_CHANNEL_XML in ${PATH_XDG_XFCE_CHANNEL}/*.xml; do
|
|
|
sed -E "s/^<channel name=\"([^\"]+)\" version=\"([^\"]+)\"[^>]*>/<channel name=\"\1\" version=\"\2\">/" -i ${FILE_CHANNEL_XML}
|
|
|
done
|
|
|
else
|
|
|
[[ -n ${XFCE4_KIOSK_USER_LOCKED} ]] && PARAM_LOCKED=" locked=\"${XFCE4_KIOSK_USER_LOCKED//,/;}\""
|
|
|
[[ -n ${XFCE4_KIOSK_USER_UNLOCKED} ]] && PARAM_UNLOCKED=" unlocked=\"${XFCE4_KIOSK_USER_UNLOCKED//,/;}\""
|
|
|
for FILE_CHANNEL_XML in ${PATH_XDG_XFCE_CHANNEL}/*.xml; do
|
|
|
sed -E "s/^<channel name=\"([^\"]+)\" version=\"([^\"]+)\"[^>]*>/<channel name=\"\1\" version=\"\2\"${PARAM_LOCKED}${PARAM_UNLOCKED}>/" -i ${FILE_CHANNEL_XML}
|
|
|
done
|
|
|
fi
|
|
|
fi
|
|
|
|
|
|
|