В 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 для аутентификации запросов на монтирование и обеспечения прав доступа, поэтому не будет уязвим к такому развитию событий.