Fix empty password [system] USERADD

master
Dmitry Razumov 7 months ago
parent 52eac27b47
commit 8830f2c71e
Signed by: asmeron
GPG Key ID: 50BC1DB583B79706

@ -392,30 +392,36 @@ exec_05_neededusers(){
# Для команды set-=|set--=|remove параметр только с именем, пример: USERADD[superadmin] # Для команды set-=|set--=|remove параметр только с именем, пример: USERADD[superadmin]
# null Если отсутствует $@, то применяем из системной конфигурации USERADD[*] # null Если отсутствует $@, то применяем из системной конфигурации USERADD[*]
## ##
## 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, с подробным описанием пользователя, можно локализованное, не обязательное
## uid # UID пользователя, если необходимо автоматически рассчитывать, то оставить пустым или 'x' ## <uid> # UID пользователя, если необходимо автоматически рассчитывать, то оставить пустым или 'x'
## user_group # Основная группа пользователя, номер или имя, если выбрано пусто или 'x', то 'user_group=user_name' ## # Если не указан <uid> и существует каталог /home/<user_name> , то <uid> будет взят у этого каталога
## extra_groups # Дополнительные группы пользователя. Дополнительные к USERGROUPS ## # Если указано 's' или 'system', то свободный uid системного пользователя
## # Если группа отсутствует или 'x', то 'extra_groups=users'. Если группа не существует, то будет создана. Перечисление через запятую. ## <user_group> # Основная группа пользователя, номер или имя, если выбрано пусто или 'x', то 'user_group=user_name'
## optional # Дополнительные параметры, например: '--shell /usr/bin/bash --create-home --no-create-home --no-user-group --non-unique' ## # Если не указан <user_group> и существует каталог /home/<user_name> , то <user_group> будет взят у этого каталога
## --home-dir <ДОМ_КАТ> # Домашний каталог новой учётной записи ## <extra_groups> # Дополнительные группы пользователя. Дополнительные к USERGROUPS
## -s, --shell /usr/bin/bash # Регистрационная оболочка новой учётной записи ## # Если группа отсутствует или 'x', то 'extra_groups=users'. Если группа не существует, то будет создана. Перечисление через запятую.
## -r, --system # Создавать системную группу ## <optional> # Дополнительные параметры, например: '--shell /bin/bash --create-home --no-create-home --no-user-group --non-unique'
## -M, --no-create-home # Не создавать домашний каталог пользователя ## --home-dir <ДОМ_КАТ> # Домашний каталог новой учётной записи
## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя ## -s, --shell /bin/bash # Регистрационная оболочка новой учётной записи
## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID, использовать только совместно с параметром <uid> ## -r, --system # Создать системного пользователя
## -M, --no-create-home # Не создавать домашний каталог пользователя
## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя
## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID, использовать только совместно с параметром <uid>
## --badnames # Не проверять имя на несоответствие правилам использования символов ## --badnames # Не проверять имя на несоответствие правилам использования символов
## password|x # Хеш пароля пользователя, если пусто или 'x', то 'password=${DEFAULTPASSWD}', ## <password|x> # Хеш пароля пользователя, если 'x', то 'password=${DEFAULTPASSWD}'
## # Если первые символы (%%), то пароль хранится в нешифрованном виде ## # Если user_name=root, то пароль не применяется, а используется password=${DEFAULTROOTPASSWD}
## # Если первые символы (!*), то аутентификация запрещена ## # Если пароль не задан, поле пустое, то вход без пароля
## # Если первый символ (*) или (!), то аутентификация по паролю заблокирована. Но другие методы входа, ## # Если пароль состоит из символов '!*' или '!' или '*' или '!!', то аутентификация запрещена
## # такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены ## # Если первый символ '!' , то аутентификация по паролю заблокирована,
## # но другие методы входа, такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены.
## # Если для команды ubconfig хеш пароля содержит первые символы '%%', то пароль хранится в нешифрованном виде.
## # Первые символы '%%' работают как команда для ubconfig, чтобы не шифровать пароль, и не сохраняются в конфигурацию.
## USERADD[superadmin]='Администратор:1000:x:x:x:$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' ## USERADD[superadmin]='Администратор:1000:x:x:x:$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60'
## USERADD[user-1]=x ## USERADD[user-1]=x
## USERADD[user-1]='Пользователь-1:x:x:vboxusers,libvirt:-s /usr/bin/bash:%%plain_password' ## USERADD[user-1]='Пользователь-1:x:x:vboxusers,libvirt:-s /bin/bash -o:$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60'
## ##
## Синхронизация пользователей системы /etc/passwd с глобальной конфигурацией ## Синхронизация пользователей системы /etc/passwd с глобальной конфигурацией
## USERADD_SYNC[user_name]='boot,shutdown' ## USERADD_SYNC[user_name]='boot,shutdown'
@ -473,7 +479,7 @@ exec_06_useradd(){
[[ ${SELECT_OPTIONAL} =~ ("--shell "|"-s ")([^' ']*)(' '|$) ]] && SELECT_SHELL="${BASH_REMATCH[2]}" || SELECT_SHELL="+" [[ ${SELECT_OPTIONAL} =~ ("--shell "|"-s ")([^' ']*)(' '|$) ]] && SELECT_SHELL="${BASH_REMATCH[2]}" || SELECT_SHELL="+"
[[ ${SELECT_OPTIONAL} =~ ("--no-create-home"|"-M") ]] && SELECT_MKHOME= || SELECT_MKHOME="yes" [[ ${SELECT_OPTIONAL} =~ ("--no-create-home"|"-M") ]] && SELECT_MKHOME= || SELECT_MKHOME="yes"
# ----------- # -----------
[[ ${SELECT_PASSWORD} == @(""|"x") && ${SELECT_USERNAME} != "root" ]] && SELECT_PASSWORD="${DEFAULTPASSWD}" [[ ${SELECT_PASSWORD} == "x" && ${SELECT_USERNAME} != "root" ]] && SELECT_PASSWORD="${DEFAULTPASSWD}"
[[ ${SELECT_USERNAME} == "root" ]] && SELECT_PASSWORD="${DEFAULTROOTPASSWD}" [[ ${SELECT_USERNAME} == "root" ]] && SELECT_PASSWORD="${DEFAULTROOTPASSWD}"
[[ ${SELECT_PASSWORD} != @(""|'!*'|'!'|'!!'|'*') ]] && SELECT_PASSWORD="$(return_hash_password hash ${HASHPASSWD} ${SELECT_PASSWORD})" [[ ${SELECT_PASSWORD} != @(""|'!*'|'!'|'!!'|'*') ]] && SELECT_PASSWORD="$(return_hash_password hash ${HASHPASSWD} ${SELECT_PASSWORD})"
# ----------- # -----------
@ -511,7 +517,7 @@ exec_06_useradd(){
elif [[ ${SELECT_OPTIONAL} =~ ("--system"|"-r") ]]; then elif [[ ${SELECT_OPTIONAL} =~ ("--system"|"-r") ]]; then
# Если указан параметр создавать системную группу # Если указан параметр создавать системную группу
SELECT_GROUP="system" SELECT_GROUP="system"
else else
if [[ -n ${SELECT_GROUP} && -n ${GROUPADD[${SELECT_GROUP}]} ]]; then if [[ -n ${SELECT_GROUP} && -n ${GROUPADD[${SELECT_GROUP}]} ]]; then
# Если группа указана и присутствует в списке групп GROUPADD[.] # Если группа указана и присутствует в списке групп GROUPADD[.]
exec_04_groupadd "GROUPADD[${SELECT_GROUP}]=${GROUPADD[${SELECT_GROUP}]}" exec_04_groupadd "GROUPADD[${SELECT_GROUP}]=${GROUPADD[${SELECT_GROUP}]}"
@ -589,7 +595,7 @@ exec_06_useradd(){
eval "${LIST_USERADD_NOUID}" eval "${LIST_USERADD_NOUID}"
elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]] && [[ ${#USERADD[@]} -ne 0 ]]; then elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]] && [[ ${#USERADD[@]} -ne 0 ]]; then
if [[ ${PARAM%%=*} =~ ^.*'['(.*)']' ]]; then if [[ ${PARAM%%=*} =~ ^.*'['(.*)']' ]]; then
# Удалим пользователей # Удалим пользователей
local SELECT_USERNAME=${BASH_REMATCH[1]} local SELECT_USERNAME=${BASH_REMATCH[1]}
delete_select_username(){ delete_select_username(){
local SELECT_USERNAME=$1 local SELECT_USERNAME=$1
@ -787,7 +793,7 @@ exec_99_dm_hint_password(){
################ ################
##### MAIN ##### ##### MAIN #####
################ ################
# Если файл подключен как ресурс с функциями, то выйти # Если файл подключен как ресурс с функциями, то выйти
return 0 2>/dev/null && return 0 return 0 2>/dev/null && return 0
#rm -f "${FILE_ROOT_USERS}" #rm -f "${FILE_ROOT_USERS}"

@ -196,9 +196,10 @@ VERSION=
## Чтобы получить хэш "openssl passwd -6 <password>" | "mkpasswd2 -m sha256crypt <password>" | "mkpasswd2 -m help" ## Чтобы получить хэш "openssl passwd -6 <password>" | "mkpasswd2 -m sha256crypt <password>" | "mkpasswd2 -m help"
## Пароль для пользователей без паролей или "x" в переменных USERADD или NEEDUSERS, по умолчанию: ublinux ## Пароль для пользователей без паролей или "x" в переменных USERADD или NEEDUSERS, по умолчанию: ublinux
## DEFAULTPASSWD=<password> ## DEFAULTPASSWD=<password>
## password # Хеш пароля или если первые символы (%%), то пароль хранится в нешифрованном виде ## password # Хеш пароля или если первые символы (%%), то пароль хранится в нешифрованном виде
## # Если пароль =DEFAULTROOTPASSWD, то включен первый запуск для настройки системы, ## # Если пароль состоит из символов '!*', то аутентификация запрещена
## # отображается подсказка пароля на фоне рабочего стола Lightdm и "[config] firstboot=yes" ## # Если пароль =DEFAULTROOTPASSWD, то включен первый запуск для настройки системы,
## # отображается подсказка пароля на фоне рабочего стола Lightdm и "[config] firstboot=yes"
#DEFAULTPASSWD='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60' #DEFAULTPASSWD='$6$E7stRhRS8fCKk7UU$Qoqw62AUaUa5uLIc2KC7WV3MUThhrR8kjXtCODmnKCzKe2zHu1/wmsiWBHZEIk/IQnk/aELQYbUK93OUtrwg60'
## Хеш пароля для пользователя root, по умолчанию: ublinux ## Хеш пароля для пользователя root, по умолчанию: ublinux
@ -240,9 +241,10 @@ VERSION=
## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя ## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя
## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID, использовать только совместно с параметром <uid> ## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID, использовать только совместно с параметром <uid>
## --badnames # Не проверять имя на несоответствие правилам использования символов ## --badnames # Не проверять имя на несоответствие правилам использования символов
## <password|x> # Хеш пароля пользователя, если пусто или 'x', то 'password=${DEFAULTPASSWD}' ## <password|x> # Хеш пароля пользователя, если 'x', то 'password=${DEFAULTPASSWD}'
## # Если user_name=root, то пароль не применяется, а используется password=${DEFAULTROOTPASSWD} ## # Если user_name=root, то пароль не применяется, а используется password=${DEFAULTROOTPASSWD}
## # Если пароль состоит из символов '!*' или '!' или '*' , то аутентификация запрещена ## # Если пароль не задан, поле пустое, то вход без пароля
## # Если пароль состоит из символов '!*' или '!' или '*' или '!!', то аутентификация запрещена
## # Если первый символ '!' , то аутентификация по паролю заблокирована, ## # Если первый символ '!' , то аутентификация по паролю заблокирована,
## # но другие методы входа, такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены. ## # но другие методы входа, такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены.
## # Если для команды ubconfig хеш пароля содержит первые символы '%%', то пароль хранится в нешифрованном виде. ## # Если для команды ubconfig хеш пароля содержит первые символы '%%', то пароль хранится в нешифрованном виде.

Loading…
Cancel
Save