diff --git a/ublinux/rc.desktop/all/autoexec b/ublinux/rc.desktop/all/autoexec index b42c73c..09e2885 100755 --- a/ublinux/rc.desktop/all/autoexec +++ b/ublinux/rc.desktop/all/autoexec @@ -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%%:*} diff --git a/ublinux/rc.desktop/deonly/gnome-network-proxy-system b/ublinux/rc.desktop/deonly/gnome-network-proxy-system index ac2b5fa..b18d923 100755 --- a/ublinux/rc.desktop/deonly/gnome-network-proxy-system +++ b/ublinux/rc.desktop/deonly/gnome-network-proxy-system @@ -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%%:*}" # Вырезаем имя пользователя diff --git a/ublinux/rc.desktop/deonly/xfce4-xfconf b/ublinux/rc.desktop/deonly/xfce4-xfconf index fab9c9a..11e6a99 100755 --- a/ublinux/rc.desktop/deonly/xfce4-xfconf +++ b/ublinux/rc.desktop/deonly/xfce4-xfconf @@ -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}) diff --git a/ublinux/rc.post.d/17-kiosk-gtk b/ublinux/rc.post.d/17-kiosk-gtk index aa6b27e..57313aa 100755 --- a/ublinux/rc.post.d/17-kiosk-gtk +++ b/ublinux/rc.post.d/17-kiosk-gtk @@ -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 diff --git a/ublinux/rc.post.d/18-kiosk-xfce4-kioskrc b/ublinux/rc.post.d/18-kiosk-xfce4-kioskrc index 9030c62..901a84f 100755 --- a/ublinux/rc.post.d/18-kiosk-xfce4-kioskrc +++ b/ublinux/rc.post.d/18-kiosk-xfce4-kioskrc @@ -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} diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index d975bdd..e118cdc 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -675,7 +675,7 @@ NSSWITCHWINBIND=yes ## Ограничить запуск исполняемых файлов и интерпретаторов языков программирования в интерактивном режиме ## ACCESS_DENIED_EXEC[ ]=,, -## Find path: # Пути поиска указанных файлов, можно использовать разделитель: пробел, запятая, двоеточие +## Find path: # Пути поиска указанных файлов, можно использовать разделитель: пробел, запятая, точка с запятой ## # Если пусто и не задан [], то будут выбраны пути поиска ="/usr/bin /usr/local/bin /usr/local/sbin /home" ## # Путь до каталога поиска /path/subpath,/path/*/subpath. Если в имени пути используется пробел, то необходимо путь обрамить \" ## Options: # Опции применяются ко все указанным каталогам и должны быть самые последние в списке @@ -684,7 +684,7 @@ NSSWITCHWINBIND=yes ## # Имена файлов разделённые: , или пробелом или ; ## 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[:]= +## # Пользователи и группы, парианты значений: +## =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[,<@groups>::]=: +## [] # Разрешить пользователям, пример: superadmin,user-1. Разделитель: запятая, точка с запятой +## [<@groups>] # Разрешить группе, пример: @whell,@users +## # Можно комбинировать группы с пользователями, пример: @wheel,user-1 +## # значения xfconf-query --channel --property --create --type --set +## # Тип значения, может принимать: bool,int,string +## =reset # Очистить свойство, выполняет xfconf-query --channel --property --reset --recursive +## # Значение. 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[,<@groups>]= +## [] # Разрешить пользователям, пример: [superadmin,user-1]. Разделитель: запятая, точка с запятой +## [<@groups>] # Разрешить группе, пример: [@whell,@users] +## # Можно комбинировать группы с пользователями, пример: @wheel,user-1 +## =: # Значение, может принимать: hide, show +## =hide # Скрыть кнопку +## =show # Показать кнопку +#XFCE4_DIALOGPOWER_LOGOUT[@users]=hide + +## Скрыть иконки приложений из меню, перечень запрещённых +## APPDESKTOP_BLACKLIST[]= +## [] # Имя пользователя, пример: superadmin,user-1. Разделитель: запятая, точка с запятой +## [*] # Все пользователи системы +## = # Файлы *.desktop. Разделитель: запятая, точка с запятой +## =* # Все файлы *.desktop + +## TODO +## APPDESKTOP_BLACKLIST[]=* +## APPDESKTOP_WHITELIST[]=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[,<@groups>]=":,;:,;" +## # Пользователи, если не указан, то применяется для всех пользователей +## <@group> # Группы, пример: @whell,@users +## # Среда рабочего стола (Desktop environment): kde,gnome,xfce,lxde,lxqt. Не обязательный параметр +## # Разделитель: точка с запятой +## # Имя приложения, может иметь значение .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|| +## none # Отключить сборку векторных фирменных обоев /usr/share/backgrounds/background.jpg +## # Выбранный файл установить как обои +## # Из каталога, выбрать случайную картинку для обоев +## '#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|| +## none # Отключить сборку векторных фирменных обоев /usr/share/backgrounds/dm.jpg +## # Выбранный файл установить как обои +## # Из каталога, выбрать случайную картинку для обоев +## '#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 # Оригинальный размер