Вступ: реалізація віддаленого запуску команди на декількох комп'ютерах
Коли ви чуєте, як хтось говорить про shell, чи розумієте ви точно, що мається на увазі? Зазвичай на будь-який UNIX-машині на початку сеансу роботи з терміналом (terminal session) ви вводите команди, наприклад useradd username. passwd password. system-config-printers і так далі. Цей shell (командний процесор) є локальним і працює на вашій машині, таким чином, всі ваші команди виконують дії на вашій машині локально.
А що, якщо ви хочете виконати команду на декількох машинах: наприклад, встановити дату на всіх комп'ютерах локальної мережі? Один варіант - зайти на кожну машину окремо і виконати команду date. Більш вдалий варіант - автоматизувати процедуру, зайшовши на сервер і за допомогою rsh встановивши дату і час на всіх інших комп'ютерах по черзі. Щоб встановити дату дистанційно, вам знадобиться встановити на комп'ютерах такі інструменти, як TSecure Shell (SSH) і remote shell (rsh). Як правило, коли ви намагаєтеся отримати доступ до віддаленого комп'ютера, вам необхідно ввести пароль. Однак, ви можете налаштувати SSH і rsh в вашому оточенні таким чином, щоб система не запитувала пароль. У цій статті пояснюється як конфігурувати rsh у вашому середовищі. У частині 1 розглядався SSH.
Обладнання, програмне забезпечення, настройка
Описані в статті завдання вирішені на наступному обладнанні і програмному забезпеченні:
- сервери IBM System p ™ і System x ™, такі як System p520 і System x345
- Red Hat Enterprise Linux® Version 4.0 Update 3 (RHEL Version 4.0 Update 3)
Малюнок 1. Діаграма мережі
Виконайте наступні дії:
- Встановіть RHEL Version 4.0 Update 3 на всі машини у вашій мережі, в нашому випадку - node1.my.com, node2.my.com, і node3.my.com. показані на малюнку 1. (Зверніть увагу: наведені нижче листинги є результатом виконання всіх інструкцій, перерахованих в списку). Для написання статті я використовував базовий дистрибутив RHEL4.
- Переконайтеся, що rsh-server-0.17-25.1 встановлений на всіх машинах, як показано в лістингу 1.
- Якщо rsh-server-0.17-25.1 вже встановлено, ви виявите на ваших машинах файли rsh. rlogin і rexec в директорії /etc/xinetd.d/. як показано в лістингу 2 (Увага. сервіси rsh. rlogin і rexec за замовчуванням заблоковані).
- У разі, якщо rsh-server-0.17-25.1 не встановлено, встановіть його з дисків RHEL4, як показано в лістингу 3. Також ви можете використовувати команду # system-config-packages для установки сервера rsh з rpm.
Лістинг 1. rsh RPM
Лістинг 2. Сервіси rsh, rlogin і rexec
Лістинг 3. Інсталяція rsh
Конфігурація для root і звичайних користувачів
Вам знадобиться використання двох наступних конфігурацій:
- Користувач Root
- Звичайний користувач, в нашому випадку - myuser
Розглянемо спочатку конфігурацію rsh для адміністратора - користувача root. Щоб настроїти rsh для root. виконайте наступні кроки:
- Зайдіть в систему як root
- Увімкніть сервіси rsh. rlogin і rexec на всіх машинах, як показано в лістингу 4. (Увага: наведені нижче листинги є результатом виконання всіх інструкцій, перерахованих в списку.) Ви можете використовувати для розблокування сервісів команди # system-config-services або #ntsysv. Якщо ви вже добре розбираєтеся в Unix, то можете вручну виконати необхідні зміни у відповідних файлах.
- Створіть файл /root/.rhosts на всіх машинах, як показано в лістингу 5. Включіть в цей файл імена всіх машин, на яких хочете запускати команди без введення пароля.
- Додайте записи rsh і rlogin в файл / etc / securetty. як показано в лістингу 6.
- Провівши перераховані зміни, на всіх машинах перезапустіть сервіс xinetd. як показано в лістингу 7.
- Протестуйте вашу середу за допомогою команди #rsh node3 date. Ця команда дозволить вам побачити дату, встановлену на комп'ютері node3.my.com. як показано в лістингу 8. В разі, якщо ви хочете зайти на node3, виконайте команду #rsh node3. як показано в лістингу 9.
Лістинг 4. Сервіси rsh, rlogin і rexec
Лістинг 5. Файл /root/.rhosts
Лістинг 6. Файл / etc / securetty
Лістинг 7. Запуск і перезапуск сервісу xinetd
Лістинг 8. Виконання комади date на node3 з комп'ютера node1
Лістинг 9. Отримання доступу до node3 без введення пароля
Тепер налаштуємо rsh для звичайного користувача, в даному випадку - myuser. Припустимо, що користувач з ім'ям myuser вже існує на всіх машинах. Розглянемо ситуацію, коли користувач myuser може виконувати команди на віддаленому комп'ютері без введення на ньому пароля.
- Зайдіть як root.
- Увімкніть сервіси rsh. rlogin і rexec на всіх машинах, як показано в лістингу 4.
- Створіть файл /etc/hosts.equiv. як показано в лістингу 10.
- Далі запустіть сервіс xinetd. як показано в лістингу 7.
- Зайдіть як myuser. як показано в лістингу 11.
- Перевірте дату у вашому середовищі, виконавши команду $ rsh node3 date. Результатом буде отримання дати на машині node3.my.com. як показано в лістингу 12.
Лістинг 10. Файл /etc/hosts.equiv
Лістинг 11. Вхід під ім'ям myuser
Лістинг 12. Виконання команди date на node3 від імені myuser
Висновок: використання rsh економить ваш час!
У цій статті ви навчилися налаштовувати rsh в мережевому середовищі таким чином, щоб швидше і простіше виконувати необхідні дії. Це не тільки економить час, а й дає вам велику гнучкість за рахунок можливості виконувати команди без введення пароля на великій кількості машин. У частині 1 було розглянуто настройка SSH, іншої можливості послідовного виконання команд в вашому оточенні без введення пароля.