Запретить root выполнять su для пользователя, который не указан в /etc/passwd

Запретить root выполнять su для пользователя, который не указан в /etc/passwd

В Linux мы аутентифицируем пользователей через AD. Пользователи AD не перечислены в /etc/passwd.

Мы собираемся развернуть решение NFS, чтобы выделить дополнительное пространство для каждой группы пользователей.

Если пользователь(A) с привилегиями sudo su получает права root, то он может выдать себя за пользователя(B), просто выполнив команду su user(B) и перейдя в NFS.

Есть ли способ запретить пользователю su права root, если пользователь не указан в /etc/passwd?

решение1

Я думаю, вам следует переосмыслить свою проблему. Я не знаю способа добиться того, чего вы хотите, но... если у вас есть пользователь с привилегиями sudo ALL, которому вы не полностью доверяете, то вам следует ограничить эти привилегии.

решение2

Если вы собираетесь предоставить пользователю A права root, то нет, вы не можете запретить ему делать что-либо (независимо от того, какие блокировки вы установите, root всегда сможет их обойти; за очень редкими исключениями). Вам следует добавить пользователя A в sudoers и жестко настроить, какие программы он может или не может запускать.

решение3

Это не ответ на ваш прямой вопрос, но я думаю, что ваша проблема связана с NFS, а не с sudo/su - вы столкнетесь с этой проблемой каждый раз, когда будете использовать NFSv3, поскольку он использует UID для обеспечения прав доступа.

Даже если вы каким-то образом не позволите пользователям переключаться на root-доступ и обратно на другой UID, злоумышленник может просто подключить свое собственное устройство или загрузить другую ОС вместо вашей специально настроенной системы и обойти защиту.

Вы рассматривали возможность использования NFSv4? Он использует Kerberos для аутентификации запросов на монтирование и обеспечения прав доступа, поэтому не будет уязвим к такому развитию событий.

Связанный контент