diff --git a/ublinux/rc.local.d/98-ubpile b/ublinux/rc.local.d/98-ubpile new file mode 100755 index 0000000..af15a96 --- /dev/null +++ b/ublinux/rc.local.d/98-ubpile @@ -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|...]= +## 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| +## enable # Только включить автозапуск и запустить сервис haproxy-ubpile.service +## disable # Выключить и отключить автозапуск сервис haproxy-ubpile.service +## # Настроить 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 diff --git a/ublinux/rc.preinit/10-accounts b/ublinux/rc.preinit/10-accounts index df73bf2..2c800e6 100755 --- a/ublinux/rc.preinit/10-accounts +++ b/ublinux/rc.preinit/10-accounts @@ -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 diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index 61fd677..862f9d5 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -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=;...; # Перечень пользователей, см. USERADD. # Пример: useradd=admin:::::pass;admin2:Administrator-2:1010:admin2:wheel,users:pass2 @@ -71,18 +71,18 @@ MACHINEID=hardware ## Включить сервисы/юниты (можно указывать службы inetd) ## SERVICES_ENABLE=, ## # Имя сервиса/юнита, если не указан тип, то используется '.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'. Пример: nmb #SERVICES_DISABLE=xinetd,pdnsd,iptables,wine -## Заблокировать и отключить сервисы/юниты, включенных по умолчанию. Запретить запуск как зависимость +## Заблокировать и отключить сервисы/юниты, включенные по умолчанию. Запретить запуск как зависимость ## SERVICES_MASK=, ## # Имя сервиса/юнита, если не указан тип, то используется '.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 # Хеш пароля или если первые символы (%%), то пароль хранится в нешифрованном виде ## # Если пароль =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, использовать только совместно с параметром @@ -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[]=disable | ::,,..., ## # Произвольное имя репозитория. Обязательный -## disable # Отключить отдин из репозиториев по умолчанию: core,extra,community,multilib,ublinux,modules +## disable # Отключить один из репозиториев по умолчанию: core,extra,community,multilib,ublinux,modules ## # Уровень проверки подписи репозитория, можно выбрать одну из основных и вторую из дополнительных, разделитель запятая. Не обязательный ## # Последовательность имеет значение, т.к. накладываются правила каскадно. По умолчанию: Required,DatabaseOptional ## Never # Проверка подписи выполняться не будет. Основная @@ -332,7 +333,7 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,systemd-swap,cups,cockpit.socket ## password # Не зашифрованный пароль ## sha256 # Использовать зашифрованный пароль SHA256 ## sha512 # Использовать зашифрованный пароль SHA512 -## # Параметры авторизации, зашифроваггый пароль SHA256 или SHA512. Не обязательный +## # Параметры авторизации, зашифрованный пароль 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| +## enable # Только включить автозапуск и запустить сервис haproxy-ubpile.service +## disable # Выключить и отключить автозапуск сервис haproxy-ubpile.service +## # Настроить http порт, включить автозапуск и запустить сервис haproxy-ubpile.service +## # Если требуется настройка SSL, то необходимо полученный сертификат вручную прописать в файле конфигурации /etc/haproxy/haproxy-ubpile.cfg ## UBPILE_REVERSE_PROXY_PORT=80 #TODO: Переоценить необходимость @@ -738,7 +743,7 @@ GRUB_BOOT_SILENT="splash" ## # Тип устройства, пример: ethernet, wireless, vpn, wireless, bridge ## # Подключение, пример: Проводное соединение 1, WIFI_WORK ## # UUID подключения, пример: 6c90739a-5b5f-3b4a-9b42-11aa89c419bc -## # MAC адрес устройста, пример: 70:48:f7:1a:2b:3c +## # MAC адрес устройства, пример: 70:48:f7:1a:2b:3c ## : ## nmcli # Выполняет: nmcli ## wifi # Выполняет: nmcli device wifi @@ -1079,7 +1084,7 @@ NSSWITCHWINBIND=yes ################################################################################ ## Режим киоска XFCE4, запретить изменять параметры пользователям и группам ## XFCE4_KIOSK[:]= -## # Пользователи и группы, парианты значений: +## # Пользователи и группы, варианты значений: ## =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=|enable|yes|disable|no +## # Включает автовход указанного пользователя +## yes|enable # Включает автовход пользователя с id =${ADMUID} по умолчанию =1000, по умолчанию =superadmin +## # Если задан параметр DISPLAYMANAGER_DEFAULTUSER, то автовход от пользователя из этого параметра +## no|disable # Принудительно отключить автологин +## AUTOLOGINUSER=enable + +## Графическая среда, по умолчанию +## DESKTOP=none|xfce|lxde|gnome|plasma| +## none # Отключает графический сервер и загружает систему консоли +## xfce # +## lxde # Быстрая среда для слабых компьютеров +## gnome # Альтернативная среда для средних и мощных машин +## plasma # Альтернативная среда для мощных машин +## # Любая среда установленная в систему +## DESKTOP=none + +## Экранный менеджер, по умолчанию +## DISPLAYMANAGER=lightdm|slim|gdm| +## lightdm # Функцональный менеджер +## slim # Простой +## gdm # Альиернативный менеджер +## # Любой менеджер установленный в систему +## DISPLAYMANAGER=lightdm + +## Пользователь выбранный по умолчанию в экранном менеджере +## DISPLAYMANAGER_DEFAULTUSER= +## # Пользователь системы +## DISPLAYMANAGER_DEFAULTUSER=user-1 ## Перечень программ для автозагрузки под указанным пользователем или группой ## AUTOEXEC[,<@groups>]=":,;:,;" @@ -1188,39 +1203,47 @@ NSSWITCHWINBIND=yes ## # Среда рабочего стола (Desktop environment): kde,gnome,xfce,lxde,lxqt. Не обязательный параметр ## # Разделитель: точка с запятой ## # Имя приложения, может иметь значение .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]= +## # Пароль кодировать в 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]= +## # Дополнительные опции перечисленные через пробел +## -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