|
|
#!/usr/bin/bash
|
|
|
#
|
|
|
# Author: Dmitry Razumov <asmeron@ublinux.com>
|
|
|
# Copyright (c) 2021-2025 UBLinux <support@ublinux.com>
|
|
|
#
|
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
#
|
|
|
|
|
|
ENABLED=yes
|
|
|
[[ ${ENABLED} == "yes" ]] || { return 0 2>/dev/null && return 0 || exit 0; }
|
|
|
DEBUGMODE=no
|
|
|
|
|
|
. /usr/lib/ublinux/functions
|
|
|
. /usr/lib/ublinux/default
|
|
|
debug_mode "$0" "$@"
|
|
|
|
|
|
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
|
|
|
|
|
|
# Проверка файлов на ошибки /etc/passwd /etc/shadow /etc/group /etc/gshadow
|
|
|
exec_check_user_group(){
|
|
|
local CHECK_MODE=$@
|
|
|
[[ -z ${CHECK_MODE} ]] && CHECK_MODE="user,group"
|
|
|
if [[ ${CHECK_MODE} =~ "user" ]]; then
|
|
|
# Проверка файлов /etc/passwd /etc/shadow
|
|
|
if [[ -x /usr/bin/pwck ]]; then
|
|
|
# Сортировать файл passwd и shadow
|
|
|
/usr/bin/pwck -qs
|
|
|
# Вывести только предупреждение, если файл passwd или shadow повреждён
|
|
|
# /usr/bin/pwck -r
|
|
|
# Вывести предупреждение и исправить, если файл passwd или shadow повреждён
|
|
|
yes 2>/dev/null | /usr/bin/pwck -q
|
|
|
fi
|
|
|
fi
|
|
|
if [[ ${CHECK_MODE} =~ "group" ]]; then
|
|
|
# Проверка файлов /etc/group /etc/gshadow
|
|
|
if [[ -x /usr/bin/grpck ]]; then
|
|
|
# Сортировать файл group и gshadow
|
|
|
/usr/bin/grpck -qs
|
|
|
# Вывести предупреждение, если файл group или gshadow повреждён
|
|
|
# /usr/bin/grpck -r
|
|
|
# Вывести предупреждение и исправить, если файл group или gshadow повреждён
|
|
|
yes 2>/dev/null | /usr/bin/grpck -q
|
|
|
fi
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
################
|
|
|
##### MAIN #####
|
|
|
################
|
|
|
|
|
|
# Если файл подключен как ресурс с функциями, то выйти
|
|
|
return 0 2>/dev/null && return 0
|
|
|
#rm -f "${FILE_ROOT_USERS}"
|
|
|
if [[ -z $@ ]]; then
|
|
|
while read -r FUNCTION; do
|
|
|
$"${FUNCTION##* }"
|
|
|
done < <(declare -F | grep "declare -f exec_")
|
|
|
else
|
|
|
FUNCTION=
|
|
|
while [[ $# -gt 0 ]]; do
|
|
|
[[ -z ${1} ]] || { declare -f "${1}" &>/dev/null && FUNCTION+="; ${1}" || FUNCTION+=" '${1//\'/}'"; }
|
|
|
shift
|
|
|
done
|
|
|
eval ${FUNCTION#*; }
|
|
|
fi
|