Загрузка данных


#!/bin/sh
set -eu

user="${PAM_USER:-}"
[ -n "$user" ] || exit 1

# Проверяем, что пользователь существует в NSS
passwd_entry="$(getent passwd "$user" || true)"
[ -n "$passwd_entry" ] || exit 1

uid="$(printf '%s\n' "$passwd_entry" | awk -F: '{print $3}')"
[ -n "$uid" ] || exit 1

case "$uid" in
    ''|*[!0-9]*)
        exit 1
        ;;
esac

# Отсекаем локальных системных пользователей
[ "$uid" -ge 1000 ] || exit 1

# Проверяем, что это не чисто локальный пользователь из /etc/passwd
# Если пользователь найден только в files, а не через SSSD, можно не монтировать
if grep -q "^${user}:" /etc/passwd 2>/dev/null; then
    exit 1
fi

# Проверяем наличие Kerberos ticket
if ! /usr/bin/klist -s; then
    exit 1
fi

# Проверяем доступность SMB-сервера
timeout 2 bash -c 'exec 3<>/dev/tcp/sos.dc.tg.corp/445' >/dev/null 2>&1 || exit 1

exit 0