Ноу Інти, лекція, основи адміністрування системи

Інші файли, що впливають на процес завантаження

Крім файлів / etc / inittab. /etc/rc.d/rc.sysinit. /etc/rc.d/rc. /etc/rc.d/rc.local на процес завантаження (і, отже, формується в результаті конфігурацію системи), впливають ті скрипти і окремі програми, які викликаються з тільки що перерахованих файлів, а також деякі чисто конфігураційні файли. Розглянути їх все неможливо, але про деякі необхідно згадати.

Всі найважливіші загально конфігураційні файли розташовані в каталозі / etc і його підкаталогах. Наведемо короткий список із зазначенням на роль деяких з цих файлів в системі і посилання на те, де шукати більш детальну інформацію.

  • / Etc / lilo .conf - файл, який визначає конфігурацію завантажувача lilo (про структуру цього файлу було сказано кілька слів в "Інсталяція ОС Linux на комп'ютер з Windows");
  • /etc/modules.conf (або /etc/conf.modules) - файл, який визначає конфігурацію завантажувальних модулів ядра (див. man-сторінку по modules.conf);
  • / Etc / fstab - містить інформацію, необхідну для автоматичного монтування файлових систем (див. Розд. 4.8 та розд. 8.3);
  • / Etc / passwd - різна реєстраційна інформація. включаючи паролі;
  • / Etc / profile - глобальний файл профілів - встановлює змінну $ PATH та інші найважливіші змінні; заглянувши в нього, ви побачите, що в ньому викликаються всі файли з підкаталогу /etc/profile.d. зокрема, файл, що задає параметри локалізації системи;
  • / Etc / bashrc - глобальний файл конфігурації bash. встановлює синоніми (аліаси) і функції, і т.п .;
  • / Etc / issue - містить повідомлення, що видається на термінал перед входом в систему (перед запитом імені та пароля); однак редагувати цей файл з метою зміни тексту повідомлення не варто, тому що сам він формується сценарій запуску /etc/rc.d/rc.local;
  • / Etc / motd - встановлює повідомлення, що видається користувачеві після входу в систему (після правильного введення пароля);
  • / Etc / redhat-release - містить назву і номер версії дистрибутива, використовується скриптом rc.local.

Перераховані вище конфігураційні файли впливають на процес завантаження системи і процес входу в систему будь-якого користувача. Але існують і такі файли, які впливають тільки на процедури входу в систему окремого користувача, дозволяють створити для нього індивідуальну робочу середу. Такі файли будуть розглянуті в наступному розділі.

Процеси, що відбуваються при реєстрації користувача

Послідовність подій при повній реєстрації виглядає так.

  1. Користувач вводить реєстраційне ім'я на запрошення login. процесу getty.
  2. getty виконує програму login. використовуючи як аргумент вказане ім'я.
  3. login запитує пароль і звіряє ім'я і пароль з записаними у файлі / etc / passwd.
  4. login виводить на екран з файлу / etc / motd "повідомлення дня".
  5. login запускає інтерпретатор shell. зазначений в бюджеті користувача і встановлює змінну середовища TERM.
  6. shell виконує відповідні файли запуску, після чого виводить на екран запрошення і чекає введення інформації.

Якщо ви хочете встановити для себе певні змінні середовища (PATH або інші), що відрізняються від тих, які за замовчуванням задаються для всіх користувачів, або ви хочете змінити повідомлення, яке буде видаватися вам після входу в систему, або хочете, щоб після того, як ви ввійдете в систему, автоматично запускалася якась програма, ви можете зробити це за допомогою наступних файлів:

/home/your_home/.bashrc - встановлює ваші аліаси (т. е. псевдоніми або альтернативні імена команд, зручні для спрощення введення часто використовуваних команд, що мають значну довжину через великої кількості опцій) і функції;

/home/your_home/.bash_profile або /home/your_home/.profile - встановлює змінні середовища і запускає ваші програми.

Якщо такі файли існують (зауважимо, що це приховані файли), вони будуть прочитані після входу в систему, і команди, записані в них, будуть виконані.

Якщо ви хочете, щоб при вході користувача в систему виконувався якийсь скрипт, то можна виклик цього скрипта помістити в файл

/.profile. Це може зробити і сам користувач.

Ці команди будуть виконуватися тільки при вході користувача в систему. Можна, наприклад, вітати кожного користувача на ім'я або посилати індивідуальні повідомлення:

Завантаження в режимі одного

Процес завантаження ОС, на жаль, не завжди відбувається так, як це задумано. Бувають випадки, коли система відмовляється завантажуватися нормальним чином. Основні причини, що призводять до такої ситуації [П10.1]:

  • несправності апаратних засобів;
  • дефектні блоки на диску, зокрема, блоки, в яких знаходиться програма-завантажувач або ядро ​​системи;
  • пошкодження файлових систем;
  • невірно сконфигурированное ядро ​​(наприклад, при спробах встановити самостійно скомпільовану або експериментальну версію ядра);
  • помилки в сценаріях запуску (що з'явилися, наприклад, через те, що ви внесли в ці сценарії якісь виправлення).

Перше, що треба знати користувачу в такому випадку - як увійти в контакт з системою, змусити її сприймати команди, щоб спробувати щось виправити. Один з можливих варіантів дій в цьому випадку - спробувати запустити систему в режимі одного, т. Е. З рівнем виконання 1 (див. "Основи адміністрування системи").

Зазвичай про необхідність переходу в одного користувача режим говорить те, що fsck не може автоматично відновити файлову систему при завантаженні. У таких випадках буває необхідно запустити fsck в розділі / usr. для чого потрібно, щоб розділ був демонтувати, а цього не можна зробити, поки не будуть відключені майже всі системні служби. Тут-то і потрібно перейти в одного користувача режим. в якому запускається мінімум служб і сервісів системи.

Ви можете змусити процес init завантажити систему в режимі одного, якщо поставите в командному рядку завантаження ядра (у відповідь на запрошення LILO boot :) аргумент single або emergency. Точніше, в той момент, коли на екрані з'явиться повідомлення

де замість / dev / hda1 треба, природно, підставити ім'я розділу з кореневої файлової системою. Ця команда підключить кореневий розділ і переведе систему в одного користувача режим. У цьому режимі в системі працює тільки один користувач - адміністратор і запускається тільки дуже невелике число найнеобхідніших системних служб (system services) - включаючи login. (Зауважимо в дужках, що іншим способом перекладу системи в одного користувача режим є застосування команди telinit. Проте в ситуації, що розглядається, коли не проходить завантаження, скористатися цим способом навряд чи вдасться).

З міркувань безпеки нормально сконфигурированная система при завантаженні оболонки в режимі одного запросить пароль користувача root. Це очевидно, тому що інакше зловмисникові було б дуже легко, задавши відповідні аргументи завантажувачу LILO. увійти в систему як root з усіма наслідками, що випливають звідси наслідками. Щоб зловмисники не могли скористатися завантаженням в режимі одного для входу в систему без пароля, в відповідну секцію файлу lilo .conf повинні бути додані два рядки:

Після виходу в оболонку ви зможете скасувати ті правки, які привели до краху або зробити якісь інші дії щодо виходу з збійної ситуації. У книзі Д. Такете і С.Барнета [П1.9] сказано, що цей спосіб не працює, якщо кореневий розділ знаходиться на диску SCSI. Однак, можливо, це відноситься до старих версій Linux, оскільки один з моїх кореспондентів (Р.Сузі) запевняє, що зі SCSI-дисками ніяких проблем немає, і система вантажиться з них в будь-якому режимі, лише був би доступний initrd. Ну, а якщо завантажитися в режимі одного все ж не виходить, можна спробувати завантажити систему з дискети, так що подбайте про те, щоб така дискета у вас була.

До речі, не чекаючи виникнення надзвичайних ситуацій, перевірте, як буде у вас проходити завантаження в одного користувача режим і завантаження з аварійної дискети. Після цього, якщо неприємності все ж виникнуть, ви будете почувати себе значно спокійніше.

Схожі статті