From 9d3d75093e38d1ab834c3494d799a676be1839fd Mon Sep 17 00:00:00 2001 From: asmeron Date: Wed, 29 Nov 2023 14:08:23 +0600 Subject: [PATCH] Fix USERADD and GROUPADD, add [users] --- ublinux/functions | 3 + ublinux/rc.post.d/10-brand-backgrounds | 1 + ublinux/rc.preinit.d/51-autologin | 1 + ublinux/rc.preinit/01-inifile | 4 +- ublinux/rc.preinit/10-accounts | 1 + ublinux/rc.xorg/01-de-background | 1 + .../ublinux/ublinux-00-install.sh | 3 - ublinux/templates/ublinux-data.ini | 135 +++++++++--------- 8 files changed, 79 insertions(+), 70 deletions(-) diff --git a/ublinux/functions b/ublinux/functions index 78c289b..9569d8f 100755 --- a/ublinux/functions +++ b/ublinux/functions @@ -108,6 +108,9 @@ detectDE(){ [[ -z ${SESSION} && -x /usr/bin/startlxqt ]] && SESSION=lxqt [[ -z ${SESSION} && -x /usr/bin/plasmashell ]] && SESSION=plasma [[ ${SESSION} == kde && -x /usr/bin/plasmashell ]] && SESSION=plasma + # SESSION=budgie + # SESSION=cinnamon + # SESSION=sway echo ${SESSION} } diff --git a/ublinux/rc.post.d/10-brand-backgrounds b/ublinux/rc.post.d/10-brand-backgrounds index 2b39611..c5f3c13 100755 --- a/ublinux/rc.post.d/10-brand-backgrounds +++ b/ublinux/rc.post.d/10-brand-backgrounds @@ -51,6 +51,7 @@ DEBUGMODE=no debug_mode "$0" "$@" SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/users; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/desktop; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/theme; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/video; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null diff --git a/ublinux/rc.preinit.d/51-autologin b/ublinux/rc.preinit.d/51-autologin index 842068f..c34545e 100755 --- a/ublinux/rc.preinit.d/51-autologin +++ b/ublinux/rc.preinit.d/51-autologin @@ -18,6 +18,7 @@ debug_mode "$0" "$@" SYSCONF="${ROOTFS}/${SYSCONF}" SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/users; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/desktop; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null AUTOLOGINUSER_CMDLINE=$(cmdline_value autologin) && [[ -n ${AUTOLOGINUSER_CMDLINE} ]] && AUTOLOGINUSER=${AUTOLOGINUSER_CMDLINE} diff --git a/ublinux/rc.preinit/01-inifile b/ublinux/rc.preinit/01-inifile index 8c216d9..140748b 100755 --- a/ublinux/rc.preinit/01-inifile +++ b/ublinux/rc.preinit/01-inifile @@ -28,7 +28,7 @@ SYSCONF="${ROOTFS}${SYSCONF}" ## Парсим файл ublinux.ini.gz и создаём конфигурацию системы в ${SYSCONF} FILE_CONFIG="${SYSCONF}/config" touch ${FILE_CONFIG} - zcat ${INIGZFILE} | grep -E '^DEFAULTPASSWD|^DEFAULTROOTPASSWD|^NEEDEDUSERS|^USERADD' > /tmp/.ublinux_accounts_credential + zcat ${INIGZFILE} | grep -E '^DEFAULTPASSWD|^DEFAULTROOTPASSWD|^NEEDEDUSERS|^USERADD|^GROUPADD' > /tmp/.ublinux_accounts_credential while read LINE; do if [[ ${LINE} =~ ^\[.*\] ]]; then FILE_CONFIG=$(tr '[]' '|' <<< "${LINE}" | cut -d'|' -f2) @@ -60,7 +60,7 @@ SYSCONF="${ROOTFS}${SYSCONF}" && sed -E "/^\s*${ESC_NAME_VAR}=/d" -i "${FILE_CONFIG}" echo "${LINE}" >> "${FILE_CONFIG}" fi - done < <(zcat ${INIGZFILE} | grep -Ev '^DEFAULTPASSWD|^DEFAULTROOTPASSWD|^NEEDEDUSERS|^USERADD|^\s*#|^\s*$') + done < <(zcat ${INIGZFILE} | grep -Ev '^DEFAULTPASSWD|^DEFAULTROOTPASSWD|^NEEDEDUSERS|^USERADD|^GROUPADD|^\s*#|^\s*$') ## Декларируем ассоциативный массив, если присутствуют соответствующие переменные while read FILE_CONFIG; do diff --git a/ublinux/rc.preinit/10-accounts b/ublinux/rc.preinit/10-accounts index b9b219c..10551b2 100755 --- a/ublinux/rc.preinit/10-accounts +++ b/ublinux/rc.preinit/10-accounts @@ -18,6 +18,7 @@ debug_mode "$0" "$@" SYSCONF="${ROOTFS}${SYSCONF}" SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/users; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/system; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null FILE_PASSWD="${ROOTFS}/etc/passwd" diff --git a/ublinux/rc.xorg/01-de-background b/ublinux/rc.xorg/01-de-background index 3f7215c..91a24a5 100755 --- a/ublinux/rc.xorg/01-de-background +++ b/ublinux/rc.xorg/01-de-background @@ -5,6 +5,7 @@ ENABLED=yes SOURCE=/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null +SOURCE=${SYSCONF}/users; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/desktop; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/theme; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null diff --git a/ublinux/rootfs-patches/ublinux/ublinux-00-install.sh b/ublinux/rootfs-patches/ublinux/ublinux-00-install.sh index 688b151..d07e2e6 100755 --- a/ublinux/rootfs-patches/ublinux/ublinux-00-install.sh +++ b/ublinux/rootfs-patches/ublinux/ublinux-00-install.sh @@ -2,9 +2,6 @@ unset ROOTFS && [ -d ${ROOTFS}usr/lib/ublinux ] || ROOTFS=/ -#/sbin -#grep -q ifup-pre-local ${ROOTFS}etc/ublinux/network-scripts/ifup 2>/dev/null && ln -sf /usr/lib/ublinux/sbin/ifup-pre-local ${ROOTFS}sbin - #/etc/rc.d INITD=${ROOTFS}etc/rc.d/init.d [ -d $INITD ] || INITD=${ROOTFS}etc/init.d diff --git a/ublinux/templates/ublinux-data.ini b/ublinux/templates/ublinux-data.ini index 6932582..10cd858 100644 --- a/ublinux/templates/ublinux-data.ini +++ b/ublinux/templates/ublinux-data.ini @@ -36,71 +36,6 @@ VERSION= ## Дополнительные параметры загрузки, только для управления модулями #CMDLINE="noload=/12,/92 findswap" -## Default user password is 'ublinux' -## Что-бы получить хэш "openssl passwd -6 password" -## Хэш пароля для пользователя по умолчанию (стандартно ublinux) -## Если пароль стандартный, то будет подсказка на фоне рабочего стола + /etc/ublinux/firstboot (Первый запуск для настройки системы) -DEFAULTPASSWD='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' - -## Default root password is 'ublinux' -## Хеш пароля для пользователя root (стандартно ublinux) -DEFAULTROOTPASSWD='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' - -## Default user name is 'superadmin' -## Имя пользователя по умолчанию, будет добавлен в группу whell, при условии если переменная NEEDEDUSERS пустая (стандартно superadmin) -DEFAULTUSER=superadmin - -## Default hash algoritm for user password -## Алгоритм хеширования паролей, возможные значения: des, md5, yescrypt, gost-yescrypt, scrypt, bf, bcrypt, bcrypt-a, sha512crypt, sha256crypt, sunmd5, md5crypt, bsdicrypt, descrypt, nt -#HASHPASSWD=sha512crypt - -## You can cpecify users there whithout using "user=" boot parameter -## Пользователи системы (аналог параметра users) -## NEEDEDUSERS='name_user:id:password:show_name:, ... ' password=x=$DEFAULTPASSWD -NEEDEDUSERS='superadmin:1000:x:Администратор' - -## Пользователи системы -## ADDUSER[user_name:uid:comment:user_group:extra_groups:optional]=password_hash|x -## user_name # Имя пользователя, обязательное поле -## uid # UID пользователя, если необходимо автоматически рассчитывать, то оставить пустым или 'x' -## comment # Поле GECOS, с подробным описанием пользователя, можно локализованное, не обязательное -## user_group # Основная группа пользователя, если выбрано пусто или 'x', то 'user_group=user_name' -## extra_groups # Дополнительные группы пользователя, если группа не существует, то будет создана. Перечисление через зяпятую. Если группа отсутствует, то будет создана новая. -## optional # Дополнительные параметры, например: '--shell /usr/bin/bash --create-home --no-create-home --no-user-group --non-unique' -## --home-dir <ДОМ_КАТ> # Домашний каталог новой учётной записи -## -s, --shell /usr/bin/bash # Регистрационная оболочка новой учётной записи -## -r, --system # Создавать системную группу -## -M, --no-create-home # Не создавать домашний каталог пользователя -## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя -## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID -## --badnames # Не проверять имя на несоответствие правилам использования символов -## -e, --expiredate <ДАТА_УСТ> # Дата устаревания новой учётной записи -## -f, --inactive <НЕАКТИВНОСТЬ> # Период неактивности пароля новой учётной записи -## password_hash|x # Хеш пароля пользователя, если выбрано 'x', то 'password_hash=DEFAULTPASSWD' -## ADDUSER[superadmin:1000:Администратор]=x -## ADDUSER[user-1]=x -## ADDUSER[user-1:x:Пользователь-1:x:vboxusers,libvirt:-s /usr/bin/bash -o]='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' - -## Группы системы -## ADDGROUP[group_name:gid:group_users:optional]=password_hash|x -## group_name # Имя группы -## gid # GID группы, если необходимо автоматически рассчитывать, то оставить пустым или 'x' -## group_users # Пользователи группы, перечисление через зпятую. Может быть пусто. -## optional # Дополнительные параметры, например: '--system --non-unique' -## -o, --non-unique # Разрешить создание групп с повторяющимися (не уникальными) GID -## -r, --system # Cоздавать системную группу -## password_hash|x # Хеш пароля группа, если выбрано 'x', то группа без пароля -## ADDGROUP[g_department_1:x:ob.vasiliev,rv.semenov]=x -## ADDGROUP[g_department_2:1001:ob.vasiliev,rv.semenov]='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' - -## Добавить пользователя с ID 1000 в группу Администраторов 'whell' -## ADDADM=*yes|no -## * =yes # Добавить пользователя ID 1000 в группу 'wheel' -## =no # Не выполнять действие - -## Groups for users -## Дополнительные группы, для всех пользователей, по умолчанию: scanner,power,audio,lp,optical,storage,video,sambashare,vboxusers,libvirt -#USERGROUPS=scanner,power,audio,lp,optical,storage,video,sambashare,vboxusers,libvirt ## Autostart services ## Автоматически запускать службы (можно указывать службы xinetd) @@ -209,6 +144,76 @@ DEPMOD=yes ## Алгоритм сжатия, используемый для сохранения изменений в модуль #MKSQFS_FASTALG="-b 512K -comp lz4 -Xhc" +[/etc/ublinux/users] +## Базовые настройки пользователей и групп +################################################################################ +## Default user password is 'ublinux' +## Что-бы получить хэш "openssl passwd -6 %password%" | "mkpasswd2 -m sha256crypt %password%" | "mkpasswd -m help" + +## Хэш пароля для пользователя по умолчанию (стандартно ublinux) +## Если пароль стандартный, то будет подсказка на фоне рабочего стола + /etc/ublinux/firstboot (Первый запуск для настройки системы) +DEFAULTPASSWD='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' + +## Default root password is 'ublinux' +## Хеш пароля для пользователя root (стандартно ublinux) +DEFAULTROOTPASSWD='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' + +## Default user name is 'superadmin' +## Имя пользователя по умолчанию, будет добавлен в группу whell, при условии если переменная NEEDEDUSERS пустая (стандартно superadmin) +DEFAULTUSER=superadmin + +## Default hash algoritm for user password +## Алгоритм хеширования паролей, возможные значения: des, md5, yescrypt, gost-yescrypt, scrypt, bf, bcrypt, bcrypt-a, sha512crypt, sha256crypt, sunmd5, md5crypt, bsdicrypt, descrypt, nt +#HASHPASSWD=sha512crypt + +## You can cpecify users there whithout using "user=" boot parameter +## Пользователи системы (аналог параметра users) +## NEEDEDUSERS='name_user:id:password:show_name:, ... ' password=x=$DEFAULTPASSWD +NEEDEDUSERS='superadmin:1000:x:Администратор' + +## Пользователи системы +## USERADD[user_name]='gecos:uid:user_group:extra_groups:optional:password_hash|x' +## user_name # Имя пользователя, обязательное поле +## gecos # Поле GECOS, с подробным описанием пользователя, можно локализованное, не обязательное +## uid # UID пользователя, если необходимо автоматически рассчитывать, то оставить пустым или 'x' +## user_group # Основная группа пользователя, если выбрано пусто или 'x', то 'user_group=user_name' +## extra_groups # Дополнительные группы пользователя, если группа не существует, то будет создана. Перечисление через зяпятую. Если группа отсутствует, то будет создана новая. +## optional # Дополнительные параметры, например: '--shell /usr/bin/bash --create-home --no-create-home --no-user-group --non-unique' +## --home-dir <ДОМ_КАТ> # Домашний каталог новой учётной записи +## -s, --shell /usr/bin/bash # Регистрационная оболочка новой учётной записи +## -r, --system # Создавать системную группу +## -M, --no-create-home # Не создавать домашний каталог пользователя +## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя +## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID +## --badnames # Не проверять имя на несоответствие правилам использования символов +## -e, --expiredate <ДАТА_УСТ> # Дата устаревания новой учётной записи +## -f, --inactive <НЕАКТИВНОСТЬ> # Период неактивности пароля новой учётной записи +## password_hash|x # Хеш пароля пользователя, если выбрано 'x', то 'password_hash=DEFAULTPASSWD' +## USERADD[superadmin]=Администратор:1000:x:wheel +## USERADD[user-1]=x +## USERADD[user-1]='Пользователь-1:x:x:vboxusers,libvirt:-s /usr/bin/bash -o:$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' + +## Группы системы +## GROUPADD[group_name]='group_users:gid:optional:password_hash|x' +## group_name # Имя группы +## group_users # Пользователи группы, перечисление через зпятую. Может быть пусто. +## gid # GID группы, если необходимо автоматически рассчитывать, то оставить пустым или 'x' +## optional # Дополнительные параметры, например: '--system --non-unique' +## -o, --non-unique # Разрешить создание групп с повторяющимися (не уникальными) GID +## -r, --system # Cоздавать системную группу +## password_hash|x # Хеш пароля группа, если выбрано 'x' или пусто, то группа без пароля +## GROUPADD[g_department_1]=ob.ivanov,rv.smirnov +## GROUPADD[g_department_2]='ob.ivanov,rv.smirnov:1001:$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' + +## Groups for users +## Дополнительные группы, для всех пользователей, по умолчанию: scanner,power,audio,lp,optical,storage,video,sambashare,vboxusers,libvirt +#USERGROUPS=scanner,power,audio,lp,optical,storage,video,sambashare,vboxusers,libvirt + +## Добавить пользователя с ID 1000 в группу Администраторов 'whell' +## ADDADM=*yes|no +## * =yes # Добавить пользователя ID 1000 в группу 'wheel' +## =no # Не выполнять действие + [/etc/ublinux/system] ## Базовые настройки системы ################################################################################