diff --git a/ublinux/rc.preinit.d/40-authpam b/ublinux/rc.preinit.d/40-authpam index 5f3acff..ffb425b 100755 --- a/ublinux/rc.preinit.d/40-authpam +++ b/ublinux/rc.preinit.d/40-authpam @@ -1,4 +1,9 @@ -#!/bin/bash +#!/usr/bin/env bash +# +# Initial script for Live operating system +# This script are launching before starting init from linux-live script. +# Current dir allways must be set to root (/) +# All system path must be relative, except initrd dirs ENABLED=yes [[ ${ENABLED} == "yes" ]] || exit 0 @@ -6,20 +11,20 @@ DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin -unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. - +[[ -d /usr/lib/ublinux ]] && { unset ROOTFS; unset CMD_CHROOT; } || { ROOTFS='.'; CMD_CHROOT='chroot . '; } SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 debug_mode "$0" "$@" SYSCONF="${ROOTFS}/${SYSCONF}" SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/system; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null [[ -n $1 && -n $2 ]] && AUTHPAM[$1]="$2" - if [[ -n ${AUTHPAM[@]} && ${AUTHPAM[@],,} != "disable" && ${AUTHPAM} != "-" && ${AUTHPAM,} != "no" && ${AUTHPAM,,} != "off" ]]; then + if [[ -n ${AUTHPAM[@]} && ${AUTHPAM[@],,} != @(disable|no|none|off) ]]; then AUTHPAM_PROFILE=$(grep -h '^AUTHPAM\[' ${ROOTFS}/usr/lib/ublinux/os-config ${ROOTFS}/etc/ublinux/config | tail -1 | sed -E 's/AUTHPAM\[([a-z]*)\].*/\1/') #' PROFILE_FEATURE=$(tr ',;' " " <<< ${AUTHPAM[${AUTHPAM_PROFILE}]}) - chroot . /usr/bin/authselect select ${AUTHPAM_PROFILE} ${PROFILE_FEATURE} --force --nobackup --quiet + ${CMD_CHROOT} ${ROOTFS}/usr/bin/authselect select ${AUTHPAM_PROFILE} ${PROFILE_FEATURE} --force --nobackup --quiet fi # if [[ -n ${AUTHPAM[@]} && ${AUTHPAM[@],,} != "disable" && ${AUTHPAM} != "-" && ${AUTHPAM,} != "no" && ${AUTHPAM,,} != "off" && ${SYSTEMBOOT_STATEMODE,,} =~ ^"sandbox" ]]; then diff --git a/ublinux/rc.preinit.d/80-server-containers-storage b/ublinux/rc.preinit.d/80-server-containers-storage index 5fb90f8..636ce5f 100755 --- a/ublinux/rc.preinit.d/80-server-containers-storage +++ b/ublinux/rc.preinit.d/80-server-containers-storage @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Initial script for Live operating system # This script are launching before starting init from linux-live script. diff --git a/ublinux/rc.preinit.d/81-server-libvirt-storage b/ublinux/rc.preinit.d/81-server-libvirt-storage index 1b8af8a..1b3f44c 100755 --- a/ublinux/rc.preinit.d/81-server-libvirt-storage +++ b/ublinux/rc.preinit.d/81-server-libvirt-storage @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Initial script for Live operating system # This script are launching before starting init from linux-live script. diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index 7c970e7..7ef3484 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -185,19 +185,6 @@ DEPMOD=yes ## =never # не обновлять автоматически #UBLINUXUPDATE=auto -## Профиль конфигурации PAM авторизации, authselect. Профили /usr/share/authselect/vendor -## Доступные доп. параметры: -## with-altfiles with-ecryptfs with-faillock with-files-access-provider with-files-domain with-pamaccess with-silent-lastlog with-sudo with-systemd-homed with-time without-nullok -## with-fingerprint with-pam-u2f with-pam-u2f-2fa without-nullokwithout-pam-u2f-nouserok -## with-smartcard with-smartcard-lock-on-removal with-smartcard-required -## with-mdns4 with-mdns6 with-mkhomedir with-mkhomedir-simple with-nispwquality -## Информация о профиле: authselect show ublinux-sssd -## Отключить выбор профиля PAM =disable|-|no|off -## AUTHPAM=disable -## По умолчанию, minimal конфигурация с локальной авторизацией -## AUTHPAM[minimal]=with-faillock,with-time,with-systemd-homed -## AUTHPAM[sssd]=with-faillock,with-time,with-systemd-homed,with-mkhomedir-simple - ## Алгоритм сжатия модулей по умолчанию #MKSQFS_OPTS="-b 512K -comp xz -Xbcj x86" @@ -217,6 +204,64 @@ DEPMOD=yes ## # Имя переменной ## # Значение переменной +## Профиль конфигурации PAM авторизации, authselect. Профили /usr/share/authselect/default +## AUTHPAM[]=|disable|no|off +## # Профиль +## *minimal # Local users only for minimal installations, default +## nis # Enable NIS for system authentication +## sssd # Enable SSSD for system authentication (also for local users only) +## winbind # Enable winbind for system authentication +## # Функции для профиля, доступные функции для профиля: +## with-altfiles with-ecryptfs with-faillock with-files-access-provider with-files-domain with-pamaccess with-silent-lastlog with-sudo with-systemd-homed with-time without-nullok +## with-fingerprint with-pam-u2f with-pam-u2f-2fa without-nullokwithout-pam-u2f-nouserok +## with-smartcard with-smartcard-lock-on-removal with-smartcard-required +## with-mdns4 with-mdns6 with-mkhomedir with-mkhomedir-simple with-nispwquality +## disable|no|off # Отключить выбор профиля +## Информация о профиле: authselect show sssd +#AUTHPAM[minimal]=with-faillock,with-time,with-systemd-homed +#AUTHPAM[sssd]=with-faillock,with-time,with-systemd-homed,with-mkhomedir-simple +#AUTHPAM=disable + +################################################################################ +## Настройка аудита и логгирования +[/etc/ublinux/logging] +## Настройка мониторинга и сбора системных событий и записи их в журналы для аудита +## AUDITD=disable|no|none|off # Отключить все созданные правила из конфигурации +## AUDITD=enable|yes|on # Включить все созданные правила конфигурации +## AUDITD[]= +## # Уникальное имя правила +## # Правило +#AUDITD[event_chmod]="-a always,exit -F arch=x86_64 -S chmod,fchmod,fchmodat -F key=event_chmod" +#AUDITD[passwd_changes]="-w /etc/passwd -p wa -k passwd_changes" + +## Настройка журналов +## https://www.freedesktop.org/software/systemd/man/journald.conf.html +## JOURNALD[]= +## # Имя переменной настройки журнала +## Storage # Указывает, где хранить журнал. Доступны следующие параметры: +## # "volatile" - Журнал хранится в оперативной памяти, т.е. в каталоге /run/log/journal +## # "persistent" - Данные хранятся на диске, т.е. в каталоге /var/log/journal +## # "auto" - используется по-умолчанию +## # "none" - Журнал не ведётся +## Compress # Пороговое значение данных для сжатия и записи в ФС. Может принимать True, False, цифра. Суффиксы, такие как K, M и G +## SplitMode # Определяет, следует ли разделять файлы журнала для каждого пользователя: «uid» или «none» +## RateLimitIntervalSec # Настраивает ограничение скорости, которое применяется ко всем сообщениям, интервал времени применения =30 +## RateLimitBurst # Настраивает ограничение скорости, которое применяется ко всем сообщениям, лимит сообщений =10000 +## SystemMaxUse # Указывает максимальное дисковое пространство, которое может использовать журнал в постоянном хранилище +## SystemKeepFree # Указывает объем места, которое журнал должен оставить свободным при добавлении записей журнала в постоянное хранилище +## SystemMaxFileSize # Определяет, до какого размера могут вырасти отдельные файлы журнала в постоянном хранилище перед ротацией +## RuntimeMaxUse # Указывает максимальное дисковое пространство, которое можно использовать в энергозависимом хранилище (в файловой системе /run) +## RuntimeKeepFree # Указывает объем пространства, которое будет выделено для других целей при записи данных в энергозависимое хранилище (в файловой системе /run) +## RuntimeMaxFileSize # Указывает объем места, которое отдельный файл журнала может занимать в энергозависимом хранилище (в файловой системе /run) перед ротацией +## ForwardToConsole # Перенаправить журнал на консоль, True|False +## TTYPath # Измените используемый консольный TTY, если используется ForwardToConsole=yes. По умолчанию /dev/console. +## MaxLevelConsole # Тип сообщений перенаправляемые в журнал, варианты: emerg|alert|crit|err|warning|notice|info|debug или целочисленные значения в диапазоне 0–7 +## # Значение переменной настройки журнала +#JOURNALD[Storage]=persistent +#JOURNALD[Compress]=True +#JOURNALD[SystemMaxUse]=8M +#JOURNALD[RuntimeMaxUse]=8M + ################################################################################ ## Настройка загрузчика GRUB [/etc/ublinux/boot] @@ -279,6 +324,16 @@ GRUB_BOOT_SILENT="splash" ## y|yes|enable # Установит путь /memory/layer-base/1/storage.libvirt #STORAGE_LIBVIRT_PATH=yes +## Использовать сервер как контроллер домена +## SERVER_DOMAIN= +## SERVER_DOMAIN[type]= +## samba # Контроллер домена Samba DC +## freeipa # Контроллер домена FreeIPA +## SERVER_DOMAIN[adadmin]=:' +#SERVER_DOMAIN=pdc.ubdc.ru +#SERVER_DOMAIN[type]=samba +#SERVER_DOMAIN[admin]=administrator:0J3QvtCy0YvQuV/QlNC10L3RjCEK + ################################################################################ ## Настройка сохранений [/etc/ublinux/save] @@ -321,7 +376,7 @@ GRUB_BOOT_SILENT="splash" ## Пользователь имеющий права ввода в домен. ## Применяется, если необходимо автоматизировать ввод в домен с большого числа ПК, или при работе в режиме полной песочницы, где невозможно сохранить ## Пароль кодировать в base64: echo 'password' | base64 -## DOMAIN[admanger]=USER_ADMIN:password_base64' +## DOMAIN[admanger]=:' ## DOMAIN[admanger]=Администратор:0J3QvtCy0YvQuV/QlNC10L3RjCEK ## Группа на контроллере домена, пользователи которой будут иметь права для sudo