master
Dmitry Razumov 2 years ago
parent 6ebc97d843
commit feb83326d0
Signed by: asmeron
GPG Key ID: 50BC1DB583B79706

@ -0,0 +1,163 @@
#!/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
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/server; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
debug_mode "$0" "$@"
PATH_UBPILE="/opt/ubpile"
UBPILE_CONF_JSON="${PATH_UBPILE}/conf/config.json"
UBPILE_CONF_JSON_TEMPLATE="${PATH_UBPILE}/sample_conf/config.json"
PATH_HAPROXY_UBPILE_CONF="/etc/haproxy/haproxy-ubpile.cfg"
## Использовать приложение UBPile
## UBPILE=primary|worker|disable|clean
## primary # Выступать в роли главного сервера управляющего всеми 'Worker'
## worker # Исполнитель заданий приходящих от сервера 'Primary'
## disable # Отключить
## clean # Очистить БД и вернуть настройки по умолчанию. После процедуры очистки установится UBPILE=disable
## UBPILE[secret_key|base_app_url|...]=<value>
## secretkey # При настройке нескольких серверов все ваши серверы должны иметь один и тот же секретный ключ. Любая случайно сгенерированная строка подойдет
## base_app_url # Полный URL-адрес, включая http порт, если он нестандартный. Это используется в электронных письмах для создания URL-адресов с самостоятельными ссылками
## email_from # Адрес электронной почты, который будет использоваться в качестве адреса "От" при отправке уведомлений
## smtp_hostname # Имя хоста вашего SMTP-сервера для отправки почты. Так-же это может быть `127.0.0.1` или `localhost`
## debug_level # Уровень детализации в журналах отладки. Он варьируется от 1 (очень тихо) до 10 (очень громко). Значение по умолчанию — 4
## job_memory_max # Максимальное ограничение памяти по умолчанию для каждого задания, по умолчанию: 1073741824 (1Гб)
##
## server_comm_use_hostnames # Разрешить серверам подключаться друг к другу по именам хостов, полезно с меняющимися IP адресами. Значения: *false, true
## web_direct_connect # Разрешить веб-интерфейсу прямое подключение к главному серверу, полезно при использовании нескольких резервных серверов
## # или балансировщик нагрузки или обратного прокси. Значения: *false, true
## web_socket_use_hostnames # Разрешить веб-интерфейсу подключаться к внутренним серверам, используя их имена хостов, а не IP-адреса. Значения: *false, true
## # Это свойство вступает в силу только в том случае, если web_direct_connect=true
## WebServer.http_port # Номер порта http веб-сервера для пользовательского интерфейса. По умолчанию: 9012
## WebServer.https # Включить HTTPS, чтобы пользовательский интерфейс был зашифрован SSL. Значения: *false, true
## WebServer.https_port # Номер порта https веб-сервера для пользовательского интерфейса. По умолчанию: 9013
## ... # Могут использоваться любые переменные конфигурационного файла config.json
## UBPILE[secret_key]="4a6ed27e0434490028ff63b11f12fb7c"
## UBPILE[base_app_url]="http://localhost:80"
## UBPILE[web_direct_connect]="true"
exec_01_ubpile(){
clean_db(){
[[ ${PATH_UBPILE}/data ]] && rm -rdf ${PATH_UBPILE}/data
}
[[ -d ${PATH_UBPILE} ]] || return 0
[[ $1 == @("set="|"set+="|"set++="|"set-="|"set--="|"remove") ]] && COMMAND=$1 && shift
[[ -n ${COMMAND} ]] || COMMAND="set="
local PARAM="$@"
if [[ -n ${PARAM} ]]; then
local UBPILE=
declare -A UBPILE
[[ ${PARAM%%=*} =~ [!\$%\&()*+,/\;\<\=\>?\^\{|\}~] ]] || eval "${PARAM%%=*}=\${PARAM#*=}"
fi
if [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ ${#UBPILE[@]} != 0 ]]; then
local STRING_ARG_CONF=
if [[ -f ${UBPILE_CONF_JSON} ]]; then
for NAME_ARG_CONF in "${!UBPILE[@]}"; do
[[ ${NAME_ARG_CONF} != 0 ]] && STRING_ARG_CONF+=".${NAME_ARG_CONF}=${UBPILE[${NAME_ARG_CONF}]}|"
done
[[ -n ${STRING_ARG_CONF} ]] && echo -E "$(jq "${STRING_ARG_CONF%|*}" ${UBPILE_CONF_JSON})" > ${UBPILE_CONF_JSON}
fi
# Удалить ключ из системной конфигурации
[[ -n ${UBPILE[secret_key]} ]] && sed "/UBPILE\[secret_key\]=/d" -i ${SYSCONF}/server
if [[ ${UBPILE[0]} == "clean" ]]; then
ubconfig set [server] UBPILE=disable
clean_db
elif [[ ${UBPILE[0]} == "primary" ]]; then
chmod o-rwx ${PATH_UBPILE}
systemctl --quiet is-active ubpile.service &>/dev/null || ${PATH_UBPILE}/bin/control.sh setup
systemctl --quiet enable ubpile.service &>/dev/null
systemctl --quiet restart ubpile.service &>/dev/null
message_motd "enable"
elif [[ ${UBPILE[0]} == "worker" ]]; then
chmod o-rwx ${PATH_UBPILE}
clean_db
systemctl --quiet enable ubpile.service &>/dev/null
systemctl --quiet restart ubpile.service &>/dev/null
message_motd "enable"
elif [[ ${UBPILE[0]} == "disable" ]]; then
systemctl --quiet stop ubpile.service haproxy-ubpile.service &>/dev/null
systemctl --quiet disable ubpile.service haproxy-ubpile.service &>/dev/null
message_motd "disable"
fi
elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]]; then
if [[ ${PARAM%%=*} =~ ^.*'['(.*)']' ]]; then
NAME_VAR=${BASH_REMATCH[1]}
TEMPLATE_VALUE="$(jq '.${NAME_VAR}' UBPILE_CONF_JSON_TEMPLATE)"
echo -E "$(jq ".${NAME_VAR}=${TEMPLATE_VALUE}" ${UBPILE_CONF_JSON})" > ${UBPILE_CONF_JSON}
fi
fi
}
## Использовать для UBPile преднастроенный обратный прокси, разместив приложение на указанном порту
## UBPILE_REVERSE_PROXY=enable|disable|<http_port>
## enable # Только включить автозапуск и запустить сервис haproxy-ubpile.service
## disable # Выключить и отключить автозапуск сервис haproxy-ubpile.service
## <http_port> # Настроить http порт, включить автозапуск и запустить сервис haproxy-ubpile.service
## # Если требуется настройка SSL, то необходимо полученный сертификат вручную прописать в файле конфигурации /etc/haproxy/haproxy-ubpile.cfg
## UBPILE_REVERSE_PROXY_PORT=80
exec_02_reverse_proxy_port(){
[[ -d ${PATH_UBPILE} ]] || return 0
local STRING_ARG_CONF=
if [[ ${UBPILE_REVERSE_PROXY_PORT} == @(disable|no) ]]; then
systemctl --quiet stop haproxy-ubpile.service &>/dev/null
systemctl --quiet disable haproxy-ubpile.service &>/dev/null
message_motd
elif [[ ${UBPILE_REVERSE_PROXY_PORT} == @(enable|yes) ]]; then
[[ -n ${UBPILE[web_direct_connect]} ]] || ubconfig set [server] UBPILE[web_direct_connect]="true"
systemctl --quiet enable haproxy-ubpile.service &>/dev/null
systemctl --quiet start haproxy-ubpile.service &>/dev/null
message_motd "enable" "$(sed -En '/^\s*frontend http/,/^\s*backend/{s/^\s*bind.*:([[:digit:]]*).*/\1/p}' ${PATH_HAPROXY_UBPILE_CONF})"
elif [[ ${UBPILE_REVERSE_PROXY_PORT} =~ ^[[:digit:]]*$ ]]; then
# Пропишем порт в конфиге haproxy
sed -E "/^\s*frontend http/,/^\s*backend/s/^\s*bind.*/ bind \*:${UBPILE_REVERSE_PROXY_PORT}/g" -i ${PATH_HAPROXY_UBPILE_CONF}
# Если параметры не заданы в конфиге, то зададим
#[[ -n ${UBPILE[web_direct_connect]} ]] || STRING_ARG_CONF+=".web_direct_connect=true | "
#[[ -n ${UBPILE[base_app_url]} ]] || STRING_ARG_CONF+=".base_app_url=http://localhost:${UBPILE_REVERSE_PROXY_PORT} | "
#[[ -n ${STRING_ARG_CONF} ]] && echo -E "$(jq "${STRING_ARG_CONF%|*}" ${UBPILE_CONF_JSON})" > ${UBPILE_CONF_JSON}
[[ -n ${UBPILE[web_direct_connect]} ]] || ubconfig set [server] UBPILE[web_direct_connect]="true"
[[ -n ${UBPILE[base_app_url]} ]] || ubconfig set [server] UBPILE[base_app_url]="http://localhost:${UBPILE_REVERSE_PROXY_PORT}"
#systemctl --quiet is-active ubpile.service &>/dev/null && systemctl --quiet restart ubpile.service &>/dev/null
systemctl --quiet enable haproxy-ubpile.service &>/dev/null
systemctl --quiet start haproxy-ubpile.service &>/dev/null
message_motd "enable" "${UBPILE_REVERSE_PROXY_PORT}"
fi
}
message_motd(){
[[ -d ${PATH_UBPILE} ]] || return 0
local UBPILE_MSG_STATUS=$1
local UBPILE_PORT=$2
local UBPILE_RUN="/run/ubpile"
PC_HOSTNAME="$(hostname -f)"
PC_IP="$(ip route get 1 | sed -n 's/^.*src \([0-9.]*\) .*$/\1/p')"
install -dm0755 ${UBPILE_RUN}
[[ -z ${UBPILE_PORT} || ${UBPILE_PORT} == "-" ]] && [[ -f ${UBPILE_CONF_JSON} ]] && UBPILE_PORT=$(jq '.WebServer.http_port' ${UBPILE_CONF_JSON})
echo "Веб-консоль UBPile: http://${PC_HOSTNAME}:${UBPILE_PORT:-3012}/ или http://${PC_IP:-127.0.0.1}:${UBPILE_PORT:-3012}/" > ${UBPILE_RUN}/active
echo "Запустить веб-консоль UBPile: systemctl enable --now ubpile.service" > ${UBPILE_RUN}/inactive
[[ ${UBPILE_MSG_STATUS} == "enable" ]] && ln -snf active.motd ${UBPILE_RUN}/motd || ln -snf inactive.motd ${UBPILE_RUN}/motd
}
################
##### MAIN #####
################
# Если файл подключен как ресурс с функциями, то выйти
return 0 2>/dev/null && return 0
if [[ -z $@ ]]; then
while read -ru3 FUNCTION; do
$"${FUNCTION##* }"
done 3< <(declare -F | grep "declare -f exec_")
else
while [[ $# -gt 0 ]]; do
declare -f ${1} &>/dev/null && FUNCTION+="; ${1}" && shift || { FUNCTION+=" '${1}'" && shift; }
done
eval ${FUNCTION#*; }
fi

@ -719,6 +719,8 @@ exec_99_firststart(){
if grep -q "^root:${DEFAULTROOTPASSWD}:" ${ROOTFS}/etc/shadow \
&& grep -q "^$(grep ".*:x:${ADMUID}:" ${ROOTFS}/etc/passwd | cut -d: -f1):${DEFAULTPASSWD}:" ${ROOTFS}/etc/shadow; then
grep -q "^FIRSTSTART$" ${SYSCONF}/config 2>/dev/null || echo "FIRSTSTART=yes" >> ${SYSCONF}/config
else
sed "/FIRSTSTART=/d" -i ${SYSCONF}/config
fi
elif [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ -n ${FIRSTSTART} ]]; then
[[ $(cat ${SYSCONF}/config 2>/dev/null) =~ ($'\n'|^)+'FIRSTSTART=' ]] || echo "FIRSTSTART=yes" >> ${SYSCONF}/config

@ -29,7 +29,7 @@
################################################################################
# Поддерживаемые параметры Grub
# services_enable=item_1,item_2,...,item_n # Перечень сервисов/юнитов который должны быть запущены, разделитель (,) или (;). Пример: services_enable=sbm,nmb,cockpit.socket
# services_enable=item_1,item_2,...,item_n # Перечень сервисов/юнитов которые должны быть запущены, разделитель (,) или (;). Пример: services_enable=sbm,nmb,cockpit.socket
# services_disable=item_1,item_2,...,item_n # Перечень сервисов/юнитов которые должны быть выключены, разделитель (,) или (;). Пример: services_disable=sbm,nmb,cockpit.socket
# useradd=<user_name_1:gecos:uid:user_group:extra_groups:password>;...;<user_name_2:gecos:uid:user_group:extra_groups:password> # Перечень пользователей, см. USERADD.
# Пример: useradd=admin:::::pass;admin2:Administrator-2:1010:admin2:wheel,users:pass2
@ -71,18 +71,18 @@ MACHINEID=hardware
## Включить сервисы/юниты (можно указывать службы inetd)
## SERVICES_ENABLE=<service_1>,<service_n>
## <service_n1> # Имя сервиса/юнита, если не указан тип, то используется '.service'. Пример: nmb
## Для работы bluetooth: SERVICEs_ENABLE++=bluetooth
## Для работы bluetooth: SERVICES_ENABLE++=bluetooth
## Для работы в WINDOWS сетях с DNS NETBIOS, включить NSSWITCHWINBIND=yes и добавить" SERVICES_ENABLE++=nmb,winbind
## Для VMWareWorkstation: SERVICES_ENABLE++=vmware-networks,vmware-usbarbitrator
## SERVICES_ENABLE++=tor,polipo,cups-lpd,pcscd
SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,systemd-swap,cups,cockpit.socket,avahi-daemon,avahi-dnsconfd,veyon,smb,nmb,winbind,bluetooth
## Отключить сервисы/юниты, включенных по умолчанию
## Отключить сервисы/юниты, включенные по умолчанию
## SERVICES_DISABLE=<service_1>,<service_n>
## <service_n1> # Имя сервиса/юнита, если не указан тип, то используется '.service'. Пример: nmb
#SERVICES_DISABLE=xinetd,pdnsd,iptables,wine
## Заблокировать и отключить сервисы/юниты, включенных по умолчанию. Запретить запуск как зависимость
## Заблокировать и отключить сервисы/юниты, включенные по умолчанию. Запретить запуск как зависимость
## SERVICES_MASK=<service_1>,<service_n>
## <service_n1> # Имя сервиса/юнита, если не указан тип, то используется '.service'. Пример: nmb
#SERVICES_MASK=adb
@ -137,7 +137,7 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,systemd-swap,cups,cockpit.socket
################################################################################
## Настройка принтера
## PRINTERADD=*manual|auto
## *manual # Вручную управлять добавление принтеров
## *manual # Вручную управлять добавлением принтеров
## auto # Пытаться автоматически определить и добавить принтер, в том числе Canon CAPT
#PRINTERADD=auto
@ -165,7 +165,7 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,systemd-swap,cups,cockpit.socket
## DEFAULTPASSWD=<password>
## password # Хеш пароля или если первые символы (%%), то пароль хранится в нешифрованном виде
## # Если пароль =DEFAULTROOTPASSWD, то включен первый запуск для настройки системы,
## # тображается подсказка пароля на фоне рабочего стола Lightdm и "[config] firstboot=yes"
## # отображается подсказка пароля на фоне рабочего стола Lightdm и "[config] firstboot=yes"
#DEFAULTPASSWD='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60'
## Хеш пароля для пользователя root, по умолчанию: ublinux
@ -183,12 +183,12 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,systemd-swap,cups,cockpit.socket
## Отключены: sunmd5, bsdicrypt, nt, argon2d, argon2i, argon2ds, argon2id
#HASHPASSWD=yescrypt
## Пользователи системы, упращённый аналог параметра USERADD. Для совместимости со старыми версиями, будет удалён.
## Пользователи системы, упрощённый аналог параметра USERADD. Для совместимости со старыми версиями, будет удалён.
## NEEDEDUSERS='name_user:id:password:show_name:, ... ' password=x=${DEFAULTPASSWD}
#NEEDEDUSERS='superadmin:1000:x:Администратор'
## Добавить пользователя системы в /etc/passwd. Если пользователь существует, то без изменений
## USERADD=no|none|disable # Отключить управление прользователями конфигурации
## USERADD=no|none|disable # Отключить управление пользователями конфигурации
## USERADD[user_name]='gecos:uid:user_group:extra_groups:optional:password|x'
## user_name # Имя пользователя, обязательное поле
## gecos # Поле GECOS, с подробным описанием пользователя, можно локализованное, не обязательное
@ -199,7 +199,7 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,systemd-swap,cups,cockpit.socket
## optional # Дополнительные параметры, например: '--shell /usr/bin/bash --create-home --no-create-home --no-user-group --non-unique'
## --home-dir <ДОМ_КАТ> # Домашний каталог новой учётной записи
## -s, --shell /usr/bin/bash # Регистрационная оболочка новой учётной записи
## -r, --system # Создавать системную группу
## -r, --system # Создать системную группу
## -M, --no-create-home # Не создавать домашний каталог пользователя
## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя
## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID, использовать только совместно с параметром <uid>
@ -217,6 +217,7 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,systemd-swap,cups,cockpit.socket
## USERSHADOW[user_name]='lastchanged:minday:maxday:warn:inactive:expire'
## user_name # Имя пользователя, обязательное поле
## lastchanged # Дата последнего изменения пароля. Указывается количество дней, исчисляется с 1 января 1970 года (дата эпохи). Возможно указать дату формата: YYYY-MM-DD
## # Если указать 0, то при логине будет затребована принудительная смена пароля.
## minday # Минимальное количество дней действия пароля, прежде чем пароль пользователя может быть изменен. По умолчанию 0 означает отсутствие минимального срока действия пароля
## maxday # Максимальное количество дней действия пароля после смены пароля пользователя. По умолчанию этот номер установлен на 99999
## warn # Количество дней предупреждения, в течение которого пользователь получает предупреждение о необходимости изменения пароля. По умолчанию 7
@ -277,7 +278,7 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,systemd-swap,cups,cockpit.socket
## Настройка подключения репозиториев
## REPOSITORY[<name_repo>]=disable | <siglevel>:<usage>:<server_path_1>,<server_path_2>,...,<server_path_n>
## <name_repo> # Произвольное имя репозитория. Обязательный
## disable # Отключить отдин из репозиториев по умолчанию: core,extra,community,multilib,ublinux,modules
## disable # Отключить один из репозиториев по умолчанию: core,extra,community,multilib,ublinux,modules
## <siglevel> # Уровень проверки подписи репозитория, можно выбрать одну из основных и вторую из дополнительных, разделитель запятая. Не обязательный
## # Последовательность имеет значение, т.к. накладываются правила каскадно. По умолчанию: Required,DatabaseOptional
## Never # Проверка подписи выполняться не будет. Основная
@ -332,7 +333,7 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,systemd-swap,cups,cockpit.socket
## password # Не зашифрованный пароль
## sha256 # Использовать зашифрованный пароль SHA256
## sha512 # Использовать зашифрованный пароль SHA512
## <auth_hash> # Параметры авторизации, зашифроваггый пароль SHA256 или SHA512. Не обязательный
## <auth_hash> # Параметры авторизации, зашифрованный пароль SHA256 или SHA512. Не обязательный
## REPOPUBLIC_WEB[/home/myrepo]=enable
## Опубликовать ленивое зеркало подключенных репозиториев в виде локального WEB ресурса.
@ -582,7 +583,7 @@ GRUB_BOOT_SILENT="splash"
## snd-intel-dspcfg.dsp_driver=1 # Принудительный выбор драйвера звукового устройства от Intel
## snd-intel-dspcfg.dsp_driver=3
## security=apparmor
## usbcore.autosuspend=-1 # Отключить авто засыпание USB устройств в режиме suspend
## usbcore.autosuspend=-1 # Отключить автозасыпание USB устройств в режиме suspend
## ipv6.disable=1 # Отключить глобально ipv6
## GRUB_CMDLINE_LINUX="modprobe.blacklist=nouveau"
@ -643,7 +644,11 @@ GRUB_BOOT_SILENT="splash"
## UBPILE[web_direct_connect]="true"
## Использовать для UBPile преднастроенный обратный прокси, разместив приложение на указанном порту
## UBPILE_REVERSE_PROXY
## UBPILE_REVERSE_PROXY=enable|disable|<http_port>
## enable # Только включить автозапуск и запустить сервис haproxy-ubpile.service
## disable # Выключить и отключить автозапуск сервис haproxy-ubpile.service
## <http_port> # Настроить http порт, включить автозапуск и запустить сервис haproxy-ubpile.service
## # Если требуется настройка SSL, то необходимо полученный сертификат вручную прописать в файле конфигурации /etc/haproxy/haproxy-ubpile.cfg
## UBPILE_REVERSE_PROXY_PORT=80
#TODO: Переоценить необходимость
@ -738,7 +743,7 @@ GRUB_BOOT_SILENT="splash"
## <TYPE> # Тип устройства, пример: ethernet, wireless, vpn, wireless, bridge
## <CONNECTION> # Подключение, пример: Проводное соединение 1, WIFI_WORK
## <CON-UUID> # UUID подключения, пример: 6c90739a-5b5f-3b4a-9b42-11aa89c419bc
## <HWADDR> # MAC адрес устройста, пример: 70:48:f7:1a:2b:3c
## <HWADDR> # MAC адрес устройства, пример: 70:48:f7:1a:2b:3c
## <COMMAND>:
## nmcli # Выполняет: nmcli <VALUE>
## wifi # Выполняет: nmcli device wifi <VALUE>
@ -1079,7 +1084,7 @@ NSSWITCHWINBIND=yes
################################################################################
## Режим киоска XFCE4, запретить изменять параметры пользователям и группам
## XFCE4_KIOSK[<channel>:<property>]=<user_groups>
## <user_groups> # Пользователи и группы, парианты значений:
## <user_groups> # Пользователи и группы, варианты значений:
## =ALL # Разрешить всем
## =NONE # Запретить
## =@whell,@users # Разрешить группам
@ -1160,26 +1165,36 @@ NSSWITCHWINBIND=yes
[/etc/ublinux/desktop]
## Настройка сервисов окружения рабочего стола
################################################################################
## User for X autostarting
## Пользователь для автовхода, AUTOLOGINUSER=, значения:
## =user_name # Включает автовход указанного пользователя
## =yes|=enable # Включает автовход пользователя с id =${ADMUID} по умолчанию =1000, по умолчанию =superadmin
## =no|=disable # Принудительно отключить автологин
## Если задан параметр ${DISPLAYMANAGER_DEFAULTUSER}, то автовход от пользователя переменной
## AUTOLOGINUSER=yes
# Графическая среда по умолчанию может быть изменена
# LXDE+slim - быстрая среда для слабых компьютеров
# GNOME+GDM - альтернативная среда для средних и мощных машин
# DESKTOP=none - отключает графический сервер и загружает систему консоли
#DESKTOP=none
#DISPLAYMANAGER=slim
#DESKTOP=LXDE
#DISPLAYMANAGER=GDM
#DESKTOP=GNOME
#DISPLAYMANAGER=lightdm
#DESKTOP=xfce
#DISPLAYMANAGER_DEFAULTUSER=user-1
## Пользователь для автовхода
## AUTOLOGINUSER=<user_name>|enable|yes|disable|no
## <user_name> # Включает автовход указанного пользователя
## yes|enable # Включает автовход пользователя с id =${ADMUID} по умолчанию =1000, по умолчанию =superadmin
## # Если задан параметр DISPLAYMANAGER_DEFAULTUSER, то автовход от пользователя из этого параметра
## no|disable # Принудительно отключить автологин
## AUTOLOGINUSER=enable
## Графическая среда, по умолчанию
## DESKTOP=none|xfce|lxde|gnome|plasma|<other>
## none # Отключает графический сервер и загружает систему консоли
## xfce #
## lxde # Быстрая среда для слабых компьютеров
## gnome # Альтернативная среда для средних и мощных машин
## plasma # Альтернативная среда для мощных машин
## <other> # Любая среда установленная в систему
## DESKTOP=none
## Экранный менеджер, по умолчанию
## DISPLAYMANAGER=lightdm|slim|gdm|<other>
## lightdm # Функцональный менеджер
## slim # Простой
## gdm # Альиернативный менеджер
## <other> # Любой менеджер установленный в систему
## DISPLAYMANAGER=lightdm
## Пользователь выбранный по умолчанию в экранном менеджере
## DISPLAYMANAGER_DEFAULTUSER=<user>
## <user> # Пользователь системы
## DISPLAYMANAGER_DEFAULTUSER=user-1
## Перечень программ для автозагрузки под указанным пользователем или группой
## AUTOEXEC[<users>,<@groups>]="<de_1>:<appname_1>,<appname_n>;<de_2>:<appname_1>,<appname_n>;<appname_n>"
@ -1188,39 +1203,47 @@ NSSWITCHWINBIND=yes
## <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"
## AUTOEXEC[user-1,@wheel]="xbindkeys;kde:yakuake;gnome:guake;xfce:plank.desktop,xterm;lxde:guake"
## Простой режим мульти рабочего места MultiSeat, когда в ПК установлено два независимых графических контроллера
## Посмотреть все устройства loginctl seat-status seat0
## lsusb lspci
#MULTISEAT_SIMPLE[НомерМеста]="АдресУстройстваДляМеста1 АдресУстройстваДляМеста..."
#MULTISEAT_SIMPLE[seat1]="/sys/devices/pci0000:00/0000:00:02.0/drm/card0 /sys/devices/pci0000:00/0000:00:02.0/graphics/fb0 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7"
#MULTISEAT_SIMPLE[seat2]="/sys/devices/pci0000:00/0000:00:02.0/0000:02:00.0/drm/card2 /sys/devices/pci0000:00/0000:00:14.0/usb2/1-10 /sys/devices/pci0000:00/0000:00:14.0/usb2/1-9"
## Посмотреть все устройства: loginctl seat-status seat0. lsusb; lspci
## MULTISEAT_SIMPLE[<НомерМеста>]="АдресУстройстваДляМеста1 АдресУстройстваДляМеста..."
## <НомерМеста> # Номер места, пример: seat1
## <АдресУстройстваДляМеста> # Адрес устройства, которое будет доступно указанному месту, перечисление через пробел, пример: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8
## MULTISEAT_SIMPLE[seat1]="/sys/devices/pci0000:00/0000:00:02.0/drm/card0 /sys/devices/pci0000:00/0000:00:02.0/graphics/fb0 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7"
## MULTISEAT_SIMPLE[seat2]="/sys/devices/pci0000:00/0000:00:02.0/0000:02:00.0/drm/card2 /sys/devices/pci0000:00/0000:00:14.0/usb2/1-10 /sys/devices/pci0000:00/0000:00:14.0/usb2/1-9"
## Сервис удалённого управления рабочим столом X11 и TTY
## Пароль для VNC сервиса x11vnc-ublinux:*.service. Настроен на работу только по паролю для всех рабочих мест. Создаёт шифрованный пароль в файле /root/.vnc/.passwd
## Поддерживает Multiseat по номеру порта display:0=port:5900 display:1=port:5901 display:2=port:5902
## Пароль кодировать в base64: echo 'ublinux' | base64
## X11VNC[password]=<hash_password>
## <hash_password> # Пароль кодировать в base64: echo 'ublinux' | base64
## # Пароль для VNC сервиса x11vnc-ublinux:*.service. Настроен на работу только по паролю для всех рабочих мест.
## # Создаёт шифрованный пароль в файле /root/.vnc/.passwd
## X11VNC[password]=dWJsaW51eAo=
## Дополнительные опции к автоматическому соединению https://manpages.ubuntu.com/manpages/lunar/en/man1/x11vnc.1.html
## X11VNC[options]="-noipv6"
## -noipv6 #
## -ultrafilexfer # Включите расширение передачи файлов UltraVNC
## -tightfilexfer # Включите расширение передачи файлов TightVNC
## -xkb # Если копирование и вставка не работают должным образом с буфером обмена
## -ssl [pem]
## [pem]=file_pem
## [pem]=SAVE
## [pem]=ANON # Аноним Диффи-Хеллмана используется метод обмена ключами, без SSL
## [pem]=TMP
## -unixpw # Что-бы работало, должна быть установлена переменная UNIXPW_DISABLE_SSL=1
## -users unixpw=
## -xdummy
## -avahi # Используйте протокол Avahi/mDNS ZeroConf для объявления этого VNC-сервера на локальном компьютере в сеть
## X11VNC[options]=<options>
## <options> # Дополнительные опции перечисленные через пробел
## -noipv6 #
## -ultrafilexfer # Включите расширение передачи файлов UltraVNC
## -tightfilexfer # Включите расширение передачи файлов TightVNC
## -xkb # Если копирование и вставка не работают должным образом с буфером обмена
## -ssl [pem]
## [pem]=file_pem
## [pem]=SAVE
## [pem]=ANON # Аноним Диффи-Хеллмана используется метод обмена ключами, без SSL
## [pem]=TMP
## -unixpw # Что-бы работало, должна быть установлена переменная UNIXPW_DISABLE_SSL=1
## -users unixpw=
## -xdummy
## -avahi # Используйте протокол Avahi/mDNS ZeroConf для объявления этого VNC-сервера на локальном компьютере в сеть
## VNC для управления TTY
## X11VNC[tty1]="-noipv6"
## Пользовательская настройка запуска, 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

Loading…
Cancel
Save