|
|
|
@ -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}"
|
|
|
|
|