Fix 20-grub

master v2.128
Dmitry Razumov 2 weeks ago
parent 8b45925a64
commit 0ab05a0cdf
Signed by: asmeron
GPG Key ID: 50BC1DB583B79706

@ -31,13 +31,13 @@ control_grub_var_cfg(){
local STR_EXPORT=${3} local STR_EXPORT=${3}
if [[ -n ${STR_SET_VALUE} ]]; then if [[ -n ${STR_SET_VALUE} ]]; then
grep -q "${STR_EXPORT}" ${FILE_GRUB_VAR_USER} 2>/dev/null || echo -e "${STR_EXPORT}" >> ${FILE_GRUB_VAR_USER} grep -q "${STR_EXPORT}" ${FILE_GRUB_VAR_USER} 2>/dev/null || echo -e "${STR_EXPORT}" >> ${FILE_GRUB_VAR_USER}
if ! grep -q "^\s*${STR_SET}${STR_SET_VALUE}\s*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then if ! grep -q "^\s*$(ere_quote_grep "${STR_SET}${STR_SET_VALUE}")\s*$" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
local QUOTA local QUOTA
[[ ${STR_SET_VALUE} =~ " " ]] && QUOTA="\"" [[ ${STR_SET_VALUE} =~ " " ]] && QUOTA="\""
if grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then if grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
sed -E "s/^\s*(${STR_SET}).*/\1${QUOTA}${STR_SET_VALUE}${QUOTA}/" -i ${FILE_GRUB_VAR_USER} sed -E "s/^\s*(${STR_SET}).*/\1$(ere_quote_sed "${QUOTA}${STR_SET_VALUE}${QUOTA}")/" -i ${FILE_GRUB_VAR_USER}
else else
sed "/${STR_EXPORT}/i${STR_SET}${QUOTA}${STR_SET_VALUE}${QUOTA}" -i ${FILE_GRUB_VAR_USER} sed -E "/${STR_EXPORT}/i$(ere_quote_sed "${STR_SET}${QUOTA}${STR_SET_VALUE}${QUOTA}")" -i ${FILE_GRUB_VAR_USER}
fi fi
fi fi
elif grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then elif grep -q "${STR_SET}" ${FILE_GRUB_VAR_USER} 2>/dev/null; then
@ -210,6 +210,7 @@ exec_grub_kernel_boot(){
control_grub_var_cfg "set UBLINUX_FILE=" "${STR_SET_VALUE_UBLINUX}" "export UBLINUX_FILE" control_grub_var_cfg "set UBLINUX_FILE=" "${STR_SET_VALUE_UBLINUX}" "export UBLINUX_FILE"
[[ -n ${STR_SET_VALUE_ADDOD} ]] && STR_SET_VALUE_ADDOD="\${PATH_DISTR_BOOT}/${STR_SET_VALUE_ADDOD}" [[ -n ${STR_SET_VALUE_ADDOD} ]] && STR_SET_VALUE_ADDOD="\${PATH_DISTR_BOOT}/${STR_SET_VALUE_ADDOD}"
control_grub_var_cfg "set ADDON_FILE=" "${STR_SET_VALUE_ADDOD}" "export ADDON_FILE" control_grub_var_cfg "set ADDON_FILE=" "${STR_SET_VALUE_ADDOD}" "export ADDON_FILE"
true
} }
################ ################

@ -1,21 +1,28 @@
#!/bin/bash #!/usr/bin/bash
ENABLED=yes ENABLED=yes
[[ ${ENABLED} == "yes" ]] || exit 0 [[ ${ENABLED} == yes ]] || exit 0
DEBUGMODE=no DEBUGMODE=no
ALLOWEDSUDO=ldconfig,ubupdate,ntpdate PATH=/usr/lib/ublinux/scripts:/usr/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin
PATH=/usr/lib/ublinux/scripts:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:
. /usr/lib/ublinux/functions ALLOWED_SUDO="ldconfig,ubupdate,ntpdate"
. /usr/lib/ublinux/default
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
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
debug_mode "$0" "$@" debug_mode "$0" "$@"
echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers.d/ubwheel SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
for a in $(echo $ALLOWEDSUDO | tr ',;' ' ') ;do
b=$(which $a 2>/dev/null) FILE_UBWHEEL="/etc/sudoers.d/ubwheel"
grep -sq "NOPASSWD: $b" /etc/sudoers.d/ubnopasswd || echo "%users ALL=NOPASSWD: $b" >> /etc/sudoers.d/ubnopasswd [[ -w ${FILE_UBWHEEL} ]] && chmod 440 ${FILE_UBWHEEL} || install -Dm0440 -o root -g root /dev/null ${FILE_UBWHEEL}
done [[ $(< ${FILE_UBWHEEL}) =~ (^|$'\n')"%wheel ALL=(ALL) ALL"($'\n'|$) ]] || echo "%wheel ALL=(ALL) ALL" >> ${FILE_UBWHEEL}
FILE_UBNOPASSWD="/etc/sudoers.d/ubnopasswd"
[[ -w ${FILE_UBNOPASSWD} ]] && chmod 440 ${FILE_UBNOPASSWD} || install -Dm0440 -o root -g root /dev/null ${FILE_UBNOPASSWD}
[[ -w ${FILE_UBNOPASSWD} ]] && DATA_UBNOPASSWD=$(< ${FILE_UBNOPASSWD})
[[ -n ${ALLOWED_SUDO} && -w ${FILE_UBNOPASSWD} ]] && while IFS= read -ru3 SELECT_APP; do
SELECT_APP=$(which ${SELECT_APP} 2>/dev/null)
[[ -n ${SELECT_APP} ]] || continue
[[ ${DATA_UBNOPASSWD} =~ (^|$'\n')"%users ALL=NOPASSWD: ${SELECT_APP}"($'\n'|$) ]] || echo "%users ALL=NOPASSWD: ${SELECT_APP}" >> ${FILE_UBNOPASSWD}
done 3< <(tr ',;' '\n' <<< ${ALLOWED_SUDO})

@ -231,6 +231,11 @@ VERSION=
## 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> # Имя пользователя, обязательное поле
## # Разрешено только латинские символы
## # Разрешёно regexp [a-zA-Z_][a-zA-Z0-9_-]*
## # Разрешено начинать имя логина только c [a-zA-Z_]
## # Разрешено использовать символы в имени логина [a-zA-Z0-9_-]
## # Ограничение максимально в 32 символов
## <gecos> # Поле GECOS, с подробным описанием пользователя, можно локализованное, не обязательное ## <gecos> # Поле GECOS, с подробным описанием пользователя, можно локализованное, не обязательное
## <uid> # UID пользователя, если необходимо автоматически рассчитывать, то оставить пустым или 'x' ## <uid> # UID пользователя, если необходимо автоматически рассчитывать, то оставить пустым или 'x'
## # Если не указан <uid> и существует каталог /home/<user_name> , то <uid> будет взят у этого каталога ## # Если не указан <uid> и существует каталог /home/<user_name> , то <uid> будет взят у этого каталога
@ -248,7 +253,9 @@ VERSION=
## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя ## -N, --no-user-group # Не создавать группу с тем же именем что и у пользователя
## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID, использовать только совместно с параметром <uid> ## -o, --non-unique # Разрешить создание пользователей с повторяющимися (не уникальными) UID, использовать только совместно с параметром <uid>
## --badnames # Не проверять имя на несоответствие правилам использования символов ## --badnames # Не проверять имя на несоответствие правилам использования символов
## <password|x> # Хеш пароля пользователя ## <password|x> # Хеш пароля пользователя,
## # Разрешено использовать только ланинские символы
## # Ограничение в 256 символов
## # Если пароль пустой или состоит из символа 'x', то 'password=${DEFAULTPASSWD}' ## # Если пароль пустой или состоит из символа 'x', то 'password=${DEFAULTPASSWD}'
## # Если user_name=root, то пароль не применяется, а используется password=${DEFAULTROOTPASSWD} ## # Если user_name=root, то пароль не применяется, а используется password=${DEFAULTROOTPASSWD}
## # Если пароль состоит из символов ' ' (пробел), то вход без пароля ## # Если пароль состоит из символов ' ' (пробел), то вход без пароля
@ -656,7 +663,8 @@ VERSION=
## RuntimeMaxUse # Указывает максимальное дисковое пространство, которое можно использовать в энергозависимом хранилище (в файловой системе /run) ## RuntimeMaxUse # Указывает максимальное дисковое пространство, которое можно использовать в энергозависимом хранилище (в файловой системе /run)
## RuntimeKeepFree # Указывает объем пространства, которое будет выделено для других целей при записи данных в энергозависимое хранилище (в файловой системе /run) ## RuntimeKeepFree # Указывает объем пространства, которое будет выделено для других целей при записи данных в энергозависимое хранилище (в файловой системе /run)
## RuntimeMaxFileSize # Указывает объем места, которое отдельный файл журнала может занимать в энергозависимом хранилище (в файловой системе /run) перед ротацией ## RuntimeMaxFileSize # Указывает объем места, которое отдельный файл журнала может занимать в энергозависимом хранилище (в файловой системе /run) перед ротацией
## ForwardToConsole # Перенаправить журнал на консоль, yes|no ## ForwardToConsole # Перенаправить журнал в консоль, yes|no
## ForwardToSyslog # Перенаправить журнал в syslog, yes|no
## TTYPath # Измените используемый консольный TTY, если используется ForwardToConsole=yes. По умолчанию /dev/console. ## TTYPath # Измените используемый консольный TTY, если используется ForwardToConsole=yes. По умолчанию /dev/console.
## MaxLevelConsole # Тип сообщений перенаправляемые в журнал, варианты: emerg|alert|crit|err|warning|notice|info|debug или целочисленные значения в диапазоне 07 ## MaxLevelConsole # Тип сообщений перенаправляемые в журнал, варианты: emerg|alert|crit|err|warning|notice|info|debug или целочисленные значения в диапазоне 07
## <value> # Значение переменной настройки журнала ## <value> # Значение переменной настройки журнала

Loading…
Cancel
Save