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 \ 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 "^$(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 grep -q "^FIRSTSTART$" ${SYSCONF}/config 2>/dev/null || echo "FIRSTSTART=yes" >> ${SYSCONF}/config
else
sed "/FIRSTSTART=/d" -i ${SYSCONF}/config
fi fi
elif [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ -n ${FIRSTSTART} ]]; then elif [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ -n ${FIRSTSTART} ]]; then
[[ $(cat ${SYSCONF}/config 2>/dev/null) =~ ($'\n'|^)+'FIRSTSTART=' ]] || echo "FIRSTSTART=yes" >> ${SYSCONF}/config [[ $(cat ${SYSCONF}/config 2>/dev/null) =~ ($'\n'|^)+'FIRSTSTART=' ]] || echo "FIRSTSTART=yes" >> ${SYSCONF}/config

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

Loading…
Cancel
Save