9

Недавно я изменил файл sudoers и имя хоста через /etc /hostname. После изменения этих файлов моя команда sudo отнимает много времени. Также он говорит, что sudo не может разрешить хост kaagini(имя хоста моей машины).

Почему sudo должен знать имя хоста для предоставления разрешения на что-то ??

В моем файле sudoers есть команда "По умолчанию env_reset". Я видел несколько похожих вопросов, но контекст здесь не удаленный вход. Ошибка отображается на локальном хосте.

Первоначальное прибегание к решению проблемы говорит, что файл /etc /hosts должен иметь фактическое имя хоста для 127.0.0.1. Это исправило мою проблему. Но мой актуальный вопрос: зачем нам это нужно для sudo ?? Должно ли sudo работать независимо от места входа в систему.

2 ответа2

12

Файл /etc/sudoers предназначен для возможности распределения между несколькими серверами. Для этого каждое разрешение в файле имеет хост-часть.

Обычно это значение равно ALL= что означает, что разрешение действительно для любого сервера, однако оно может быть установлено для определенных хостов:

%sudo    kaagini=(ALL) ALL

Чтобы sudo знал, следует ли применять это правило, ему нужно найти хост, на котором он работает. Он использует вызов, который полагается на правильность /etc/hosts , поэтому он терпит неудачу, если он не верен.

Можно утверждать, что sudo не нужно беспокоиться о поиске имени, если для части хоста установлено значение ALL= для всех разрешений, но это просто не работает таким образом - кажется, что он работает там, где он работает до обработка правил.

Это действительно для простоты обслуживания, поскольку sudo читает только /etc /sudoers, чтобы увидеть, что пользователь может сделать на текущем компьютере. Но как администратор с 100 серверами, для этого может потребоваться 100 различных файлов /etc /sudoers. Поскольку у sudoers есть часть хоста в разрешениях, вы можете поддерживать один файл sudoers и распространять его на все машины, но все же иметь детализацию того, что пользователи могут делать на каждой машине.

-1

Puppet - это программное обеспечение для управления конфигурацией, которое способно автоматически конфигурировать парк серверов, читая файлы Manppests Puppet. Такой файл может содержать определение вашего файла /etc /sudoers, который затем может быть передан всем вашим "агентам" кукол из вашего "хозяина" кукол. Тогда все хосты получат одну и ту же копию вашего файла /etc /sudoers, которая может (и должна) включать определения HOST, поэтому вы можете предоставить некоторым пользователям некоторые команды на некоторых хостах (но не на других).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .