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

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

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

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

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

3 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам