Change %group to @group

master
Dmitry Razumov 2 years ago
parent 484b0c9bff
commit c059525f70
Signed by: asmeron
GPG Key ID: 50BC1DB583B79706

@ -9,7 +9,7 @@ ENABLED=yes
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/desktop; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
# ARG1: AUTOEXEC[user-1,%wheel]="xbindkeys;kde:yakuake;gnome:guake;lxde:guake;xfce:plank"
# ARG1: AUTOEXEC[user-1,@wheel]="xbindkeys;kde:yakuake;gnome:guake;xfce:plank.desktop,xterm;lxde:guake"
exec_autoexec_set(){
local PARAM="$@"
[[ -n ${PARAM} ]] && declare -A AUTOEXEC && eval "${PARAM%%=*}='${PARAM#*=}'"
@ -19,11 +19,11 @@ exec_autoexec_set(){
local IS_EXEC=
while read USER_GROUP; do
if [[ ${USER_GROUP} == 0 ]] \
|| ( [[ ${USER_GROUP} =~ ^"%" ]] && getent group "${USER_GROUP//%/}" | grep -q "\b${USER}\b" ) \
|| ( [[ ${USER_GROUP} =~ ^"@" ]] && getent group "${USER_GROUP//@/}" | grep -q "\b${USER}\b" ) \
|| getent passwd "${USER_GROUP}" | grep -q ^"\b${USER}\b"; then
IS_EXEC=yes
fi
done < <(echo "${ITEM_UNIT}" | tr ';, ' \\n)
done < <(echo "${ITEM_UNIT}" | tr ',; ' \\n)
if [[ -n ${IS_EXEC} ]]; then
while read DE_CMD; do
FIND_DE=${DE_CMD%%:*}

@ -29,7 +29,7 @@ exec_proxy_gnome(){
gsettings set org.gnome.system.proxy.http enabled false
elif [[ -n ${PROXY_SYSTEM[http]} ]]; then
gsettings set org.gnome.system.proxy.http enabled true
if [[ ${PROXY_HOST} ~= '@' ]]; then
if [[ ${PROXY_HOST} =~ '@' ]]; then
PROXY_USER_PASS="${PROXY_SYSTEM[${PROTOCOL}]##*/}" # Вырезаем протокол http://
PROXY_USER_PASS="${PROXY_USER_PASS%%@*}" # Вырезаем имя пользователя и пароль
PROXY_USER_PASS="${PROXY_USER_PASS%%:*}" # Вырезаем имя пользователя

@ -10,8 +10,8 @@ SOURCE=${SYSCONF}/kiosk; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
if [[ -n ${XFCE4_XFCONF[@]} ]]; then
for CHANNEL_PROPERTY in "${!XFCE4_XFCONF[@]}"; do
USERS=$(cut -d: -f1 <<< ${CHANNEL_PROPERTY} | tr " ,;" "\n")
# Выбрать пользователей из указанных групп %..
USERS_GROUP=$(grep "^%" <<< ${USERS} | tr -d "%" | xargs -rl getent group | cut -d: -f4 | tr "," "\n")
# Выбрать пользователей из указанных групп @..
USERS_GROUP=$(grep "^@" <<< ${USERS} | tr -d "@" | xargs -rl getent group | cut -d: -f4 | tr "," "\n")
if [[ -z ${USERS} ]] || grep -q "^${USER}$" <<< ${USERS} || grep -q "^${USER}$" <<< ${USERS_GROUP}; then
CHANNEL=$(cut -d: -f2 <<< ${CHANNEL_PROPERTY})
PROPERTY=$(cut -d: -f3 <<< ${CHANNEL_PROPERTY})

@ -13,12 +13,13 @@ SOURCE=${SYSCONF}/kiosk; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
XFCE4_LOGOUT_BUTTON=".xfsm-logout-buttons > box:first-child button:nth-child(1) { margin-left: -160px; margin-right: 160px; }"
## Настройка GTK3 для XFCE4
if [[ -n ${XFCE4_DIALOGPOWER_LOGOUT[@]} ]]; then
for SELECT_USERS in "${!XFCE4_DIALOGPOWER_LOGOUT[@]}"; do
USERS=$(cut -d: -f1 <<< ${SELECT_USERS} | tr " ,;" "\n")
# Выбрать пользователей из указанных групп %..
USERS_GROUP=$(grep "^%" <<< ${USERS} | tr -d "%" | xargs -rl getent group | cut -d: -f4 | tr "," "\n")
# Выбрать пользователей из указанных групп @..
USERS_GROUP=$(grep "^@" <<< ${USERS} | tr -d "@" | xargs -rl getent group | cut -d: -f4 | tr "," "\n")
[[ ${USERS} == 0 ]] && USERS=$(ls -1 /home/ 2>/dev/null)
while read SELECT_USER; do
FILE_GTKCSS="/home/${SELECT_USER}/.config/gtk-3.0/gtk.css"
@ -26,10 +27,10 @@ XFCE4_LOGOUT_BUTTON=".xfsm-logout-buttons > box:first-child button:nth-child(1)
if [[ ${XFCE4_DIALOGPOWER_LOGOUT[${SELECT_USERS}],,} == "hide" ]]; then
grep -q "${XFCE4_LOGOUT_BUTTON}" ${FILE_GTKCSS} 2>/dev/null || echo "${XFCE4_LOGOUT_BUTTON}" >> ${FILE_GTKCSS}
else
sed "/${XFCE4_LOGOUT_BUTTON}/d" -i ${FILE_GTKCSS}
echo sed "/${XFCE4_LOGOUT_BUTTON}/d" -i ${FILE_GTKCSS}
fi
fi
done < <(echo -e "$(grep -v "^%" <<< ${USERS})\n${USERS_GROUP}" | uniq)
done < <(echo -e "$(grep -v "^@" <<< ${USERS})\n${USERS_GROUP}" | uniq)
done
fi

@ -20,8 +20,9 @@ KIOSKRC="/etc/xdg/xfce4/kiosk/kioskrc"
SECTION=$(cut -d: -f1 <<< ${SELECT})
PROPERTY=$(cut -d: -f2 <<< ${SELECT})
VALUE=${XFCE4_KIOSK[${SELECT}]}
[[ ${VALUE} == "none" ]] && VALUE=NONE
[[ ${VALUE} == "all" ]] && VALUE=ALL
[[ ${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}

@ -675,7 +675,7 @@ NSSWITCHWINBIND=yes
## Ограничить запуск исполняемых файлов и интерпретаторов языков программирования в интерактивном режиме
## ACCESS_DENIED_EXEC[<find_path_1> <find_path_n> <options>]=<file_1>,<file_2>,<file_n>
## Find path: # Пути поиска указанных файлов, можно использовать разделитель: пробел, запятая, двоеточие
## Find path: # Пути поиска указанных файлов, можно использовать разделитель: пробел, запятая, точка с запятой
## <empty> # Если пусто и не задан [], то будут выбраны пути поиска ="/usr/bin /usr/local/bin /usr/local/sbin /home"
## <find_path_n> # Путь до каталога поиска /path/subpath,/path/*/subpath. Если в имени пути используется пробел, то необходимо путь обрамить \"
## Options: # Опции применяются ко все указанным каталогам и должны быть самые последние в списке
@ -684,7 +684,7 @@ NSSWITCHWINBIND=yes
## <files_n> # Имена файлов разделённые: , или пробелом или ;
## interpreter # Эквивалентно =gbr3,python,python2,python3,perl,perl6,php,ruby,node,awk,gawk
## ACCESS_DENIED_EXEC=interpreter
## ACCESS_DENIED_EXEC[/usr/bin,usr/bin/local]=gbr3,python,python2,python3,perl,perl6,php,ruby,node,awk,gawk
## ACCESS_DENIED_EXEC[/usr/bin,/usr/bin/local]=gbr3,python,python2,python3,perl,perl6,php,ruby,node,awk,gawk
## ACCESS_DENIED_EXEC[/home/*/local/bin]=myfile
## ACCESS_DENIED_EXEC[\"/home/superadmin/soft my\"]=myfile
@ -821,9 +821,15 @@ NSSWITCHWINBIND=yes
[/etc/ublinux/kiosk]
## Настройка режима киоска
################################################################################
## Режим киоска XFCE4
## =ALL - разрешить всем | =NONE - запретить | =%whell,%users - разрешить группам | =superadmin,user-1 - разрешить пользователям | =%wheel,user-1 - разрешить пользователю и группе
#XFCE4_KIOSK[xfce4-panel:CustomizePanel]=%wheel
## Режим киоска 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
#XFCE4_KIOSK[xfce4-session:SaveSession]=NONE
#XFCE4_KIOSK[xfce4-session:CustomizeSplash]=NONE
#XFCE4_KIOSK[xfce4-session:CustomizeChooser]=NONE
@ -831,58 +837,67 @@ NSSWITCHWINBIND=yes
#XFCE4_KIOSK[xfce4-session:CustomizeCompatibility]=NONE
#XFCE4_KIOSK[xfce4-session:Shutdown]=ALL
#XFCE4_KIOSK[xfce4-session:CustomizeSecurity]=NONE
#XFCE4_KIOSK[xfdesktop:UserMenu]=%wheel
#XFCE4_KIOSK[xfdesktop:CustomizeBackdrop]=%wheel
#XFCE4_KIOSK[xfdesktop:CustomizeDesktopMenu]=%wheel
#XFCE4_KIOSK[xfdesktop:UserMenu]=@wheel
#XFCE4_KIOSK[xfdesktop:CustomizeBackdrop]=@wheel
#XFCE4_KIOSK[xfdesktop:CustomizeDesktopMenu]=@wheel
#XFCE4_KIOSK[xfdesktop:CustomizeWindowlist]=NONE
#XFCE4_KIOSK[xfdesktop:CustomizeDesktopIcons]=%wheel
#XFCE4_KIOSK[xfdesktop:CustomizeDesktopIcons]=@wheel
## Назначить настройки XFCE4 по умолчанию
#XFCE4_KIOSK_DEFAULT="user-1,user-2"
## Назначить настройки XFCE4 через xfconf-query
## XFCE4_XFCONF[$users,%$groups:$channel:$property]=$type:$value
## $users =superadmin,user-1 - разрешить пользователям
## %$groups =%whell,%users - разрешить группам | =%wheel,user-1 - разрешить пользователю и группе
## $channel $property $type $value - значения xfconf-query --channel $channel --property $property --create --type $type --set $set
## #type =reset - выполняет xfconf-query --channel $channel --property $property --reset --recursive
#XFCE4_XFCONF[%users:xfce4-session:/shutdown/LockScreen]=bool:false
#XFCE4_XFCONF[%users:xfce4-session:/shutdown/ShowHibernate]=bool:false
#XFCE4_XFCONF[%users:xfce4-session:/shutdown/ShowSuspend]=bool:false
#XFCE4_XFCONF[%users:xfce4-session:/shutdown/ShowHybridSleep]=bool:false
#XFCE4_XFCONF[%users:xfce4-session:/shutdown/ShowSwitchUser]=bool:false
#XFCE4_XFCONF[%users:xfce4-session:/general/ShowSave]=bool:false
#XFCE4_XFCONF[%users:xfce4-screensaver:/saver/idle-activation/delay]=int:10
## XFCE4_XFCONF[<users>,<@groups>:<channel>:<property>]=<type>:<value>
## [<users>] # Разрешить пользователям, пример: superadmin,user-1. Разделитель: запятая, точка с запятой
## [<@groups>] # Разрешить группе, пример: @whell,@users
## # Можно комбинировать группы с пользователями, пример: @wheel,user-1
## <channel> <property> <type> <value> # значения xfconf-query --channel <channel> --property <property> --create --type <type> --set <set>
## <type> # Тип значения, может принимать: bool,int,string
## =reset # Очистить свойство, выполняет xfconf-query --channel <channel> --property <property> --reset --recursive
## <value> # Значение. bool:true/false int:-2,147,483,647..2,147,483,647 string:text
#XFCE4_XFCONF[@users:xfce4-session:/shutdown/LockScreen]=bool:false
#XFCE4_XFCONF[@sers:xfce4-session:/shutdown/ShowHibernate]=bool:false
#XFCE4_XFCONF[@users:xfce4-session:/shutdown/ShowSuspend]=bool:false
#XFCE4_XFCONF[@users:xfce4-session:/shutdown/ShowHybridSleep]=bool:false
#XFCE4_XFCONF[@users:xfce4-session:/shutdown/ShowSwitchUser]=bool:false
#XFCE4_XFCONF[@users:xfce4-session:/general/ShowSave]=bool:false
#XFCE4_XFCONF[@users:xfce4-screensaver:/saver/idle-activation/delay]=int:10
## Скрыть кнопку LOGOUT в XFCE4 диалог выключения питания
## XFCE4_DIALOGPOWER_LOGOUT[$users,%$groups]=$value
## $users =superadmin,user-1 - разрешить пользователям
## %$groups =%whell,%users - разрешить группам | =%wheel,user-1 - разрешить пользователю и группе
## $value =hide - скрыть кнопку
## $value =show - показать кнопку
#XFCE4_DIALOGPOWER_LOGOUT[%users]=hide
## Скрыть иконки приложений из меню
## Значения ${USERNAME}:
## ${USERNAME} - Имя пользователя
## * - Все пользователи системы
## Допустимые значения после = :
## * - все файлы *.desktop
## ИМЯ_DESKTOP_ФАЙЛА - файлы .desktop через запятую: xarchiver,xfce4-power-manager-settings
## APPDESKTOP_BLACKLIST[${USERNAME}]=*
## APPDESKTOP_WHITELIST[${USERNAME}]=xarchiver,xfce4-power-manager-settings
## XFCE4_DIALOGPOWER_LOGOUT[<users>,<@groups>]=<value>
## [<users>] # Разрешить пользователям, пример: [superadmin,user-1]. Разделитель: запятая, точка с запятой
## [<@groups>] # Разрешить группе, пример: [@whell,@users]
## # Можно комбинировать группы с пользователями, пример: @wheel,user-1
## =<value>: # Значение, может принимать: hide, show
## =hide # Скрыть кнопку
## =show # Показать кнопку
#XFCE4_DIALOGPOWER_LOGOUT[@users]=hide
## Скрыть иконки приложений из меню, перечень запрещённых
## APPDESKTOP_BLACKLIST[<users>]=<desktop_files>
## [<users>] # Имя пользователя, пример: superadmin,user-1. Разделитель: запятая, точка с запятой
## [*] # Все пользователи системы
## =<desktop_files> # Файлы *.desktop. Разделитель: запятая, точка с запятой
## =* # Все файлы *.desktop
## TODO
## APPDESKTOP_BLACKLIST[<users>]=*
## APPDESKTOP_WHITELIST[<users>]=xarchiver,xfce4-power-manager-settings
## Скопирует все [/usr/share/applications/*.desktop] в [${USERNAME}/.local/share/applications/] и добавит опцию NoDisplay=true в файлы [${USERNAME}/.local/share/applications/*.desktop]:
## Изменения хранятся в профиле пользователя, для любого режима
## APPDESKTOP_BLACKLIST[LOCAL]=*
## APPDESKTOP_WHITELIST[LOCAL]=xarchiver,xfce4-power-manager-settings
## Скопирует все [/usr/share/applications/*.desktop] в [/usr/share/local/applications/] и добавит опцию NoDisplay=true в файлы [/usr/share/local/applications/*.desktop]:
## В режиме песочницы изменения применяются каждую перезагрузку
## В режиме полного сохранения, вернуть изменения можно только вручную
## APPDESKTOP_BLACKLIST[GLOBAL]=*
## APPDESKTOP_WHITELIST[GLOBAL]=xarchiver,xfce4-power-manager-settings
## Удалит файлы [/usr/share/applications/*.desktop] [/usr/share/local/applications/*.desktop] [/home/*/.local/share/applications/*.desktop]:
## В режиме песочницы изменения применяются каждую перезагрузку
## В режиме полного сохранения, вернуть изменения можно только вручную
#APPDESKTOP_BLACKLIST[user-1]=xarchiver,xfce4-power-manager-settings
#APPDESKTOP_WHITELIST[user-1]=
@ -911,11 +926,13 @@ NSSWITCHWINBIND=yes
#DISPLAYMANAGER_DEFAULTUSER=user-1
## Перечень программ для автозагрузки под указанным пользователем или группой
## AUTOEXEC[user1,usern,%group1,%groupn]="%cmd1%;%de1%:%cmd2%;%de2%:%cmd3%,%cmd4%"
## user,%group # Пользователи и группы, если не указан, то применяется для всех пользователей
## %de% # Среда рабочего стола (Desktop environment): kde,gnome,xfce,lxde,lxqt. Не обязательный параметр.
## %cmd% # Команда запуска
#AUTOEXEC[user-1,%wheel]="xbindkeys;kde:yakuake;gnome:guake;lxde:guake;xfce:plank"
## AUTOEXEC[<users>,<@groups>]="<de_1>:<appname_1>,<appname_n>;<de_2>:<appname_1>,<appname_n>;<appname_n>"
## <users> # Пользователи, если не указан, то применяется для всех пользователей
## <@group> # Группы, пример: @whell,@users
## <de> # Среда рабочего стола (Desktop environment): kde,gnome,xfce,lxde,lxqt. Не обязательный параметр
## # Разделитель: точка с запятой
## <appname_n> # Имя приложения, может иметь значение .desktop файла или команда запуска. Разделитель: запятая
#AUTOEXEC[user-1,@wheel]="xbindkeys;kde:yakuake;gnome:guake;xfce:plank.desktop,xterm;lxde:guake"
## Простой режим мульти рабочего места MultiSeat, когда в ПК установлено два независимых графических контроллера
## Посмотреть все устройства loginctl seat-status seat0
@ -946,7 +963,7 @@ NSSWITCHWINBIND=yes
## -avahi # Используйте протокол Avahi/mDNS ZeroConf для объявления этого VNC-сервера на локальном компьютере в сеть
## VNC для управления TTY
## X11VNC[tty1]="-noipv6"
## Пользовательская настройка запуска, new1..new2..new%n
## Пользовательская настройка запуска, new_1..new_2..new_n
## X11VNC[new1]="-no6 -rfbauth /root/.vnc/.passwd -rawfb vt2"
## Отключить автоматическое создание X11VNC для всех дисплеев
## X11VNC[display]=disable || X11VNC[nodisplay]=1 || X11VNC[disable]=1
@ -1010,11 +1027,11 @@ NSSWITCHWINBIND=yes
#THEME=ublinux
## Выбор обоев рабочего стола: XFCE4, Plasma
## BACKGROUND_DE=none|%файл%|%путь_доаталога%
## =none # Отключить сборку векторных фирменных обоев /usr/share/backgrounds/background.jpg
## =%файл% # Выбранный файл установить как обои
## =%путь_доаталога% # Из каталога, выбрать случайную картинку для обоев
## ='#002d55' # Установить сплошным цветом выбранный шестнадцатеричный код цвета
## BACKGROUND_DE=none|</dir/file>|</dir/subdir>
## none # Отключить сборку векторных фирменных обоев /usr/share/backgrounds/background.jpg
## </dir/file> # Выбранный файл установить как обои
## </dir/subdir> # Из каталога, выбрать случайную картинку для обоев
## '#002d55' # Установить сплошным цветом выбранный шестнадцатеричный код цвета
## Если параметр не задан, то фирменные обои по умолчанию собираются в /usr/share/backgrounds/background.jpg
#BACKGROUND_DE=/mnt/livedata/ublinux-data/backgrounds/wallpapers/
@ -1025,15 +1042,16 @@ NSSWITCHWINBIND=yes
## BACKGROUND_DE_MODE=0
## Выбор обоев экранного менеджера Display Manager: Lightdm
## BACKGROUND_DM=none|%файл%|%путь_доаталога%
## =none # Отключить сборку векторных фирменных обоев /usr/share/backgrounds/dm.jpg
## =%файл% # Выбранный файл установить как обои
## =%путь_доаталога% # Из каталога, выбрать случайную картинку для обоев
## ='#002d55' # Установить сплошным цветом выбранный шестнадцатеричный код цвета
## BACKGROUND_DM=none|</dir/file>|</dir/subdir>
## none # Отключить сборку векторных фирменных обоев /usr/share/backgrounds/dm.jpg
## </dir/file> # Выбранный файл установить как обои
## </dir/subdir> # Из каталога, выбрать случайную картинку для обоев
## '#002d55' # Установить сплошным цветом выбранный шестнадцатеричный код цвета
## Если параметр не задан, то фирменные обои по умолчанию собираются в /usr/share/backgrounds/dm.jpg
#BACKGROUND_DM=/mnt/livedata/ublinux-data/backgrounds/wallpapers/
## Метод масштабирования экранного менеджера Display Manager: Lightdm
## BACKGROUND_DM_MODE=*0|1|2
## * =0 # Растянуть (по умолчанию)
## =1 # Увеличить
## =2 # Оригинальный размер

Loading…
Cancel
Save