команда sudo намагається шукати ім'я хоста


15

Нещодавно я змінив файл sudoers та ім'я хоста через / etc / hostname. Після зміни цих файлів моя команда sudo займає багато часу. Крім того, він говорить, що sudo не може вирішити хост kaagini (ім'я хоста моєї машини).

Чому sudo повинен знати ім'я хоста для надання дозволу на щось ??

У моєму файлі sudoers є команда "За замовчуванням env_reset". Я бачив кілька подібних питань, але контекст тут не є віддаленим входом. Помилка відображається на localhost.

Початковий googling для проблеми говорить, що файл / etc / hosts повинен мати власне ім’я хоста для 127.0.0.1. Це вирішило мою проблему. Але моє актуальне питання: чому ми вимагаємо цього для судо ?? Чи повинен судо працювати незалежно від місця входу.



@OliverSalzburg Я правильно переформулював питання. Будь ласка, повідомте мені, якщо щось не так
prathmesh.kallurkar

Відповіді:


16

/etc/sudoersФайл призначений , щоб мати можливість бути розподілені між декількома серверами. Для цього кожен дозвіл у файлі має хост-частину.

Зазвичай це встановлено, ALL=що означає, що дозвіл дійсний для будь-якого сервера, однак його можна встановити для конкретних хостів:

%sudo    kaagini=(ALL) ALL

Для того, щоб судо знав, наскільки це правило слід застосовувати, воно має шукати хоста, на якому він працює. Він використовує дзвінок, який покладається на /etc/hostsте, що він є правильним, і тому він не працює, якщо він неправий.

Можна стверджувати, що sudoне потрібно заважати виконувати пошук імен, якщо хост-частина встановлена ALL=для всіх дозволів, але вона просто не працює таким чином - вона, як видається, спрацьовує там, де вона працює, перш ніж обробляти правила .

Це дійсно для зручності обслуговування, оскільки sudo лише читає / etc / sudoers, щоб побачити, що може зробити користувач на поточній машині. Але як адміністратор зі 100 серверами, для підтримки цього може знадобитися 100 різних файлів / etc / sudoers. Оскільки sudoers має дозвольну частину дозволів, ви можете підтримувати один файл sudoers і розподіляти його на всіх машинах, але все ще маєте детальність щодо того, що можуть робити користувачі на кожній машині.


Дякую за відповідь. Чи можете ви знову завітати до розповсюдженого файлу sudoers ?? Дивіться, у мене працює операційна система на машиніA. Якщо файл дозволів (/ etc / sudoers) для цієї операційної системи зберігається на інших машинах. Або ваша відповідь означає сказати, що команда sudo може сказати щось на зразок користувача Джон, може судо з machineA, але не з machineB ??
prathmesh.kallurkar

Це дійсно для простоти обслуговування. sudo лише читає / etc / sudoers, щоб побачити, що може зробити користувач на поточній машині. Але як адміністратор зі 100 серверами, для підтримки цього може знадобитися 100 різних файлів / etc / sudoers. Оскільки sudoers має дозвольну частину дозволів, ви можете підтримувати один файл sudoers і розподіляти його на всіх машинах, але все ще маєте детальність щодо того, що можуть робити користувачі на кожній машині.
Павло

ще одне питання ... чи повинен адміністратор сервера сканувати новий файл sudoers щоразу, коли відбувається зміна основного файлу sudoers або чи sudo надає спосіб підтримувати файл sudoers по мережі ??
prathmesh.kallurkar

@ prathmesh.kallurkar Ні, немає вбудованого методу розповсюдження, але це Linux, тому це нормально. Щоб виконати цю частину, ви використовуєте rsync або scp або інший інструмент.
Павло

1
Я вважаю, що це помилка (якщо є лише ВСІ правила, то sudo не потрібно знати її ім'я хоста), і таким чином подав bugzilla.sudo.ws/show_bug.cgi?id=916
Маттіас Урліхс


-3

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


3
Чи можете ви розширити свою відповідь, щоб пояснити, що таке лялька, де ви її знаходите, і як ви використовуєте це для вирішення проблеми? З черги на огляд
fixer1234

2
Будь ласка, прочитайте Як я рекомендую програмне забезпечення для деяких порад щодо того, як вам слід рекомендувати програмне забезпечення. Ви повинні надати принаймні посилання, додаткову інформацію про саме програмне забезпечення та про те, як його можна використовувати для вирішення проблеми у питанні.
DavidPostill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.