Назад | Перейти на главную страницу

Sudo ldap с полным доменным именем вместо короткого имени хоста

На моем рабочем месте мы используем sudo-ldap для предоставления привилегий sudo по сети из централизованного хранилища. Мы делаем это на основе имени пользователя и имени хоста, на котором выполняется sudo, например:

sudoHost: foo1
sudoUser: user1

Я хочу иметь возможность сопоставить атрибут sudoHost на основе полного доменного имени, а не короткого имени хоста, чтобы мы могли использовать поддомены DNS для разных сред, например использовать web1.dev.example.com в среде разработки и web1.test.example.com в тестовой среде и так далее. Однако сейчас sudoHost соответствует только короткому имени хоста.

т.е. это работает:

sudoHost: foo1

Но это не работает:

sudoHost: foo1.dev.example.com

Проблема с коротким именем хоста (foo1) заключается в том, что он соответствует все среды - foo1.dev, foo1.test, foo1.stagingи т.д. Я хочу, чтобы он был более детальным.

Можно ли заставить sudo-ldap запрашивать на основе полного доменного имени (возвращенного hostname -f), а не просто короткое имя хоста?

Я погуглил безуспешно. Я ничего не могу найти на странице руководства или в Интернете; самое близкое, когда речь идет о sudoHost атрибут:

sudoHost

Имя хоста, IP-адрес, IP-сеть или сетевая группа хоста (с префиксом "+"). Специальное значение ALL будет соответствовать любому хосту.

Никакого упоминания о FQDN и коротком имени хоста. Не упоминалось полное доменное имя и короткое имя хоста в Настройка раздела ldap.conf либо.

Рассматриваемый хост работает под управлением Ubuntu 10.04.

Учитывая, что сам sudo соответствует только тем же вещам, что и sudoHost упоминания атрибута, я склонен думать, что без навязчивых sudo исправляя, вы не получите то, что вам нужно.

Есть одна возможность - вы устанавливаете имя хоста машины на короткое имя или полное доменное имя? Если вы делаете первое, попробуйте второе и посмотрите, переключается ли sudo на распознавание FQDN вместо этого (хотя вы, скорее всего, потеряете возможность сопоставления по короткому имени). Честно я много Я предпочитаю устанавливать для моего хоста полное доменное имя, я думаю, что это обеспечивает гораздо большую ценность в многодоменной настройке, подобной той, которую вы описываете (что, кстати, я аплодирую вам за это, и я желаю, чтобы все это сделали).

Если бы я рискнул (обоснованно) предположить, почему вы не можете (и, честно говоря, не должны) соответствовать, на основе полного доменного имени (или, если быть более конкретным, данных, предоставленных hostname -f) вместо имени хоста, я бы сказал, что это потому, что это значение (hostname -f) получается через NSS - что означает /etc/hosts или DNS (и sudo не может сказать какой). Таким образом, у вас внезапно появляется уязвимость в системе безопасности, при которой, если злоумышленник может манипулировать результатами DNS, он получает вашу настройку sudo с ограничением для хоста.

Как менее полезный, но все же потенциально ценный вариант (если установка FQDN в качестве имени хоста невозможна), переключитесь на использование IP-адресов. Это менее очевидно и немного проблематично, если вам нужно перенумеровать, но если вы не редактируете свои записи LDAP вручную, ваш sudo-config-maintenance-tool-thingy может по крайней мере скрыть уродство, разрешая имена / адреса и предоставляя вам имена для игры и IP-адреса sudo.