Login
Linux Процес Вхід
Після завантаження системи на серійних терміналів або віртуальні термінали, користувач побачить запрошення до входу подібне:
ім'я_комп'ютера входу:
Це запрошення, що генеруються програмою, як правило, Getty або mingetty, який регенерується ініціалізації процесу кожен раз, коли користувач закінчує сесію на консолі. Getty програма буде викликати логін, і логін, в разі успіху буде викликати користувачам оболонки. Етапи процесу є:
Ініціалізації процесу породжує Getty процесу. Getty процес викликає процес входу в систему, коли користувач вводить своє ім'я і передає ім'я користувача для входу в систему. Процес реєстрації запитує у користувача пароль, перевіряє його, а потім, якщо є успіх, користувальницької оболонки запускається. У разі невдачі програма виводить на екран повідомлення про помилку, а потім кінці ініціалізації відродиться Гетті. Користувач запускає свої сесії і в кінцевому підсумку вийти. На вихід, вихід програмної оболонці, і ми повертаємося до кроку 1.
Примітка: Цей процес є те, що відбувається на рівні 3, а 5-му рівні використовується декілька різних програм для виконання аналогічних функцій. Ці програми X називається X клієнтів. Процес ініціалізації знову
Нагадаємо, що в / і т.д. / inittab файл там були такі рядки наступним чином:
1:2345: відроджуються :/ sbin / mingetty tty1
Ці рядки викликають init, щоб метати ікру mingetty процесу на рівні 2 по 5 для tty1 і інші термінали. Для цього ініціалізації буде використовувати "вилка", щоб зробити нову копію самого себе і використовувати "Exec", щоб запустити mingetty програми. Getty буде чекати, поки користувач, то прочитати ім'я користувача. Потім mingetty буде викликати вхід з ім'ям користувача в якості аргументу. Якщо введений пароль не відповідає для користувача, ініціалізації будуть завантажуватися і працювати mingetty знову. Якщо успішного входу ініціалізації буде використовувати "Exec", щоб запустити програму оболонки користувача. Коли снаряд виходить через "вихід" команди ініціалізації буде завантажити та запустити програму знову mingetty (причина для "відродження" команду в / і т.д. / inittab файл). Файл "/ і т.д. / пароль" визначає оболонку, які будуть використовуватися для користувача, входу в обліковий запис Ця версія Linux використовує mingetty програма, яка є програмою-мінімум Getty використовується для віртуальних терміналів. У деяких системах і, як правило Unix системах традиційно Getty використовується програма, яка має більше можливостей. У цьому розділі Getty програма описана, але ви повинні знати, що багато особливостей Getty не буде застосовуватися до mingetty.
Зверніть увагу, що мережі логіни обробляються інакше, ніж консолі логіни, оскільки вона непрактично мати Getty Для кожного потенційного входу в мережу. Мережі логіни, як правило, здійснюється через демон інтернет супер, inetd, або за допомогою Telnet або Rlogin протоколу. Телнет викличе вхід в програму, коли сесія починається, то в разі успіху, вхід в програму буде викликати користувальницької оболонки. Getty
Getty виконує такі функції:
Відкрийте термінал лінії і встановити їх режими Роздрукувати запрошення для входу та отримати ім'я користувача Початок процесу входу в систему для користувачів
Детальний аналіз:
При запуску, він аналізує його командного рядка, а потім зчитує його файл за умовчанням, зазвичай "/ і т.д. / conf.getty", щоб визначити час виконання значення. Після створення "лінії" або віртуальні лінії, Getty виводить вміст "/ і т.д. / питання" файл. Потім Getty читає ім'я користувача і викликає вхід з ім'ям користувача в якості аргументу. Читаючи ім'я користувача, Getty намагається адаптувати систему до швидкості використовуваного терміналу, а також встановлює певні параметри терміналу відповідно до процедури реєстрації користувача. Див сторінку termio осіб. Пристрій терміналу використовується Getty визначається аргумент в командному рядку. Цей аргумент, як правило, визначається в / і т.д. / inittab. Швидкість аргумент мітки записи в "/ і т.д. / gettydefs" файл. Цей параметр визначає початкову швидкість і настройки терміналу, запрошення для входу, які будуть використовуватися, остаточна швидкість і настройки терміналу і покажчик на інший запис, щоб спробувати, якщо користувач вказує, що швидкість не є правильним. Це робиться шляхом відправки перерви характер. Getty сканує файл gettydefs шукає відповідний запис у швидкості. Перший запис використовується, якщо швидкість не отримав або не було знайдено збіг. Аргумент типу називає тип терміналу додається до лінії, такі як 3101. Тип повинен бути правильним ім'ям, зазначеним в TERMCAP базі даних. Getty використовує це значення, щоб визначити, як очистити відеозображення і встановлює змінну оточення "TERM" в змісті цього значення. На більшості систем Linux, це значення буде "Linux". Вишикувалися аргумент описує лінію дисципліни використовувати на лінії. За замовчуванням "LDISC0".
Під час його запуску, Getty шукає файл "/ і т.д. / conf.getty.line" або "/ і т.д. / conf.getty". Він зчитує вміст рядка з формою "ІМ'Я = значення". Назва рядка перераховані нижче:
SYSTEM = ім'я - Встановлює ім'я вузла значення. За замовчуванням використовується значення, що повертається Uname (3), яка повертає вашої інформаційної системи, як правило, "Linux". VERSION = рядок - встановлює параметр @ V значенню рядка або вмісту файлу (якщо рядок починається з "/"), на який вказує рядок. LOGIN = ім'я - ім'я входу в програму, яка буде виконуватися, коли користувач вводить своє ім'я. За замовчуванням використовується / бен / вхід в систему. INIT рядок = - рядок, що використовується для ініціалізації лінії до використання Getty ПИТАННЯ = рядок - це рядок набирається, а не вміст / і т.д. / питання файлу. CLEAR, значення = HANGUP = значення WAITCHAR = значення DELAY = секунди TIMEOUT = число ПІДКЛЮЧЕННЯ = рядок WAITFOR = рядок ALTLOCK = лінія ALTLINE = лінія Зворотного = значення Пла = range1 Діапазон2 range3 ВИКЛ = рядок FIDO = рядок EMSI = значення
Ці команди описані краще Гетті (1M). Увійти
Вхід в програму буде запитувати ім'я користувача, якщо аргумент не заданий в командному рядку.
Якщо у файлі "/ і т.д. / Nologin" існує, і користувач не корінь, зміст "/ і т.д. / Nologin" файл виводяться на екран і увійти припиняється. Якщо спеціальні обмеження доступу задаються для входу в систему користувачеві у файлі "і т.д. / usertty", обмеження повинні бути виконані або увійдіть буде відмовлено, і програма журналу буде реєструвати спроби. Якщо користувач є кореневим для входу повинен бути на терміналі, перерахованих у файлі "і т.д. / securetty".
Якщо ці умови виконані, то пароль буде запитуватися, а потім воно буде перевірено (якщо потрібно пароль для цього імені користувача). Після трьох невдалих спроб входу у відповідь отримує дуже повільно, і після 10 спроб входу вмирає. Як завжди, все входу невдачі будуть повідомляє журнал об'єкта. Якщо файл ". Hushlogin" існує в домашньому каталозі користувача, то "тихий" вхід в який здійснюється відключає перевірку пошти і друку в останній раз логін і повідомлення дня. В іншому випадку, якщо файл "var / log / LASTLOG" існує в останній раз увійти друкується, а потім струм входу записана в цей файл. Чи є поточний логін записані в цей файл, якщо він ще не існує, або якщо файл ". Hushlogin" існує? Я думаю, що він робить, але не знайшли жодних документів, що говорить.
На даний момент вхід в програму буде виконувати стандартні завдання адміністрування. До них відносяться:
Установка UID і GID з терміналу Збереження змінну оточення якщо він існує. Збереження інших змінних оточення, якщо-р використовується опція HOME, PATH, SHELL, TERM, MAIL, і змінні середовища LOGNAME встановлюються. Шлях за замовчуванням встановлений в "/ USR / місцеві / бен бен :/ :/ USR / бен:". для звичайних користувачів і "/ sbin :/ бен :/ USR / sbin" для кореня. Якщо це не «тихий» вхід, повідомлення дня друкується і файл з ім'ям користувача в "/ USR / котушка / пошта" буде перевірено і буде виведено повідомлення, якщо воно має ненульову довжину. Користувачі оболонки почалося. Оболонка, зазначені у файлі "/ і т.д. / пароль". Якщо він не вказаний, ім'я використовуватимуть "/ бен / ш" за замовчуванням оболонці. Ця оболонка буде виконуватися з привілеями користувача, а не привілеї в якості логіна був запущений. Якщо не вказано каталог для користувача "/ і т.д. / пароль", логін буде використовувати "/" по замовчуванню для домашнього каталогу користувача.
Наступна функція, яка буде виконувати вхід в тому, щоб оновити обліку користувачів логін файли, які є "/ var / run / utmp" і "var / log / wtmp", які містять інформацію про кількість часу, який користувачі були в системі, а також, коли вони вхід в систему і вимикати. Також ініціалізації програми і Getty може писати ці файли. Як входу використовується / і т.д. / пароль файл:
Після того як користувач успішно увійшов в систему, вхід в програму буде викликати користувальницької оболонки. Вхід в програму буде виглядати в / і т.д. / пароль файл, щоб визначити, яку оболонку для запуску програми. / І т.д. / пароль файл містить записи, що містять повний шлях оболонки. Зразок / і т.д. / пароль файл, перерахованих нижче:
корінь: х: 0:0: корінь корінь :/ :/ бен / Баш Бен: х: 1:1: Бен бен :/: Демон: х: 2:2: демон :/ sbin: адм: х: 3:4: ADM :/ VAR / ADM: LP: х: 4:7: р :/ VAR / котушка / LPD: Синхронізація: х: 5:0: синхронізація :/ sbin бен :/ / синхронізації вимкнення: х: 6:0: відключення :/ sbin :/ sbin / вимикання зупинки: х: 7:0: зупинка :/ sbin sbin :/ / зупинка пошта: х: 8:12: пошта :/ VAR / котушка / пошта: новини: х: 9:13: новини :/ VAR / котушка / новини: UUCP: х: 10:14: UUCP :/ VAR / котушка / UUCP: Оператор: х: 11:00: корінь оператора :/: ігри: х: 12:100: ігри :/ USR / ігри: Суслик: х: 13:30: ховрах USR :/ / Бібліотека / ховрашок-дані: ftp:x:14:50:FTP Користувач :/ дому / FTP: ніхто: х: 99:99: Nobody :/: XFS: х: 100:101: X Font сервера :/ etc/X11/fs :/ бен / брехня GDM: х: 42:42 :: / будинок / GDM :/ бен / Баш Postgres: х: 40:233: PostgreSQL сервера :/ VAR / Бібліотека / PgSQL :/ бен / Баш Кальмар: х: 23:23 :: / VAR / котушка / кальмара :/ Dev / нуль марка: х: 500:500 :: / головна / марки :/ бен / Баш Джордж: х: 501:501 :: / home / Джордж :/ бен / Баш
синтаксис:
рахунок: пароль: UID, GID, GECOS: каталог: оболонка
де поля визначаються як:
рахунки - ім'я користувача. пароль - користувачі зашифрованих passwrod або місце проведення характер, якщо система використовує тіньові паролі та зберігати пароль в / і т.д. / тінь файл, який читається тільки корінь. UID - користувачі чисельне визначення. GID - номер основній групі для користувачів. GECOS - як правило, має повне ім'я користувача. Це поле призначене лише для інформаційних цілей і не є обов'язковим. Ця інформація іноді називають пальцем інформації користувача. директорії - повний шлях до домашнього каталогу користувача. оболонка - повний шлях і ім'я файлу користувальницької оболонки. Якщо значення не тут / бен / ш передбачається. Це значення може бути змінено за допомогою CHSH команди.
Вхід в програму буде використовувати обліковий запис, щоб знайти ім'я користувача і таким чином отримати правами користувача. Вхід також буде використовувати пароль (або / і т.д. / тінь файл) щоб переконатися, що введений пароль матчу. Вхід буде шукати домашньому каталозі користувача і використовувати його, щоб встановити $ HOME змінної оточення. Вхід буде використовувати оболонку поле, щоб визначити, що програма-оболонка (наприклад, удар, ш, ТТГ, і т.д.), щоб запустити для цього користувача. Потім вхід в програму буде проходити контроль в оболонку програми. Існує важливе розходження в управління передається на даний момент, однак! Оболонка програми буде виконуватися з привілеями користувача, а не з привілеями суперкористувача. Програми цього моменту (ініціалізації, Гетті, логін) всі працюють з привілеями суперкористувача.
Файли, які використовуються для входу програми:
/ І т.д. / Nologin - Цей файл використовується, щоб користувачі, які не є корінь з входу в систему. / І т.д. / usertty - Цей файл використовується ввести спеціальні обмеження доступу користувачів. / І т.д. / securetty - визначає термінали, які адміністратор може зайти на. . Hushlogin - Якщо цей файл існує в домашньому каталозі користувача, це буде перешкоджати перевірити пошту, друк часу останнього входу, і повідомлення про день, коли вході користувача в систему / Var / log / LASTLOG - містить інформацію про останній час входу був зроблений на системі. / І т.д. / пароль - містить інформацію про користувача, включаючи ідентифікатор, ім'я, домашній каталог, і шлях до кращим програмної оболонки. Якщо ви не використовуєте тіньові паролі, цей файл може містити паролі користувачів.