Как запретить пользователю авторизацию через одноименного системного пользователя?
Тестирую ввод Linux-сервера в AD. Ввести в домен получилось. Авторизация через AD работает. Проблема в том, что работает и авторизация через одноименного системного пользователя.
Возможно ли как то ограничить пользователей, чтобы при наличии у/з в AD, через системного пользователя авторизация не проходила? Или таки придётся отключить системного пользователя на уровне системы?
P.S. По возможности посоветуйте хороший материал (документацию) по нюансам работы в AD через Linux.
nss - разрешение пользователей и групп (имя в id итд), конфигуряется в /etc/nssswitch.conf
pam - авторизация, конфигурируется в /etc/pam.d
В частности, авторизция unix-пользователей через pam_unix.
Скорее всего, надо настраивать так, что если pam_ldap (или что там используется для вторизации в этом AD?) не прошло, то авторизация фейлилась. А сейчас либо пробует pam_unix, либо вообще, pam_unix стоит перед pam_ldap...
В том числе можно ковырять в сторону, чтобы, например, с консоли можно было зайти локальным юзером, а по ssh - нет. По-хорошему для целей обслуживания и разглючивания локальный юзер хотя бы один должен работать хоть каким-то способом...
Но я считаю лучшая стратегия всё же залочить локальных пользователей. Ведь по сути эти пользователи после перехода на домен больше не нужны, разве что в архивных целях или на случай вынужденного отката. Можно оставить только админам пользователей (можно с другими именами, тип vasyalocal вместо vasya), чтобы можно было в случае развала домена или каких-то проблем зайти на сервер и что-то сделать.
Если нужно именно разделить пространства имён — в sssd.conf ставь use_fully_qualified_names = True. Тогда AD-юзер логинится как user@DOMAIN, а просто user — это строго локальный. Часто это и есть правильное решение.
Если хочешь именно заблокировать локальный аккаунт — usermod -L имя отрубает пароль (но SSH-ключ всё равно сработает), а usermod --expiredate 1 имя истекает сам аккаунт полностью.
По документации — sssd.io, там нормально всё разжёвано.
Вы сами такое реализовывали? Меня интересует момент с назначением групп для Linux-машин. В частности Linux-специфичные группы: users, wheel, nginx, postgres и пр.
Авторизация работает даже для тех пользователей, которых нет в системе. Значит нужно создавать группу для Linux-машин уже в AD?
да, создай в AD группу типа linux_users, в sssd.conf: access_provider = simple и simple_allow_groups = linux_users@DOMAIN — тогда только члены группы смогут зайти. Sudo настраивается прямо через sudoers: %linux_admins@DOMAIN ALL=(ALL) ALL — без wheel на linux-стороне.
да, создай в AD группу wheel — sssd добавит её в список групп при логине, sudo подхватит. GID может отличаться от локального, sudoers смотрит по имени.