Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Акуленок_часть1.doc
Скачиваний:
43
Добавлен:
13.11.2019
Размер:
1 Мб
Скачать
☆

6.4. Процесс регистрации пользователей

Число пользователей определяется количеством терминалов, подключенных к компьютеру. Терминалом называется устройство, обеспечивающее интерактивное взаимодействие пользователя с машиной (обычно это дисплей и клавиатура). Все терминалы, которые могут быть подключены к системе, должны быть описаны в специальном файле с именем /etc/ttys. Каждому терминалу соответствует одна строка.

Процесс init всегда ожидает окончательного завершения выполнения стартовых скриптов /etc/rc и только после этого переходит к последнему участнику инициализации системы – программе getty, обеспечивающей вход пользователя в систему (рис. 6.3).

Рис. 6.3. Упрощенная схема входа в систему

Регистрацию пользователей в системе можно условно разбить на три этапа:

1 этап. При включении терминала активизируется процесс getty, который является сервером терминального доступа и запускает программу login, которая в свою очередь запрашивает имя и пароль.

Имеется несколько программ getty, по одной на каждую терминальную линию. Каждая из этих программ ждет, пока кто–нибудь не войдет в систему. Как только это произошло, соответствующий канал связи настраивается по определенному протоколу канала и затем по системному вызову ехес() управление передается программе login, реализующей проверку пароля.

2 этап. Программа login проверяет наличие пользователя с введенным именем в системном учетном файле и выводит на терминал ”просьбу” ввести пароль:

password:

Введенная строка сравнивается со значением, зарегистрированным в системе, и в случае несовпадения на терминал выводится соответствующее сообщение, и вновь запрашивается имя и пароль. Если же все введено правильно, login запускает программу, указанную в учетном файле /etc/passwd для пользователя с указанным именем. Это может быть любая программа, но в общем случае – shell. После этого программа login завершает свою работу.

3 этап. Shell выполняет соответствующий файл инициализации и выдает на терминал приглашение. С этого момента можно вводить команды.

Более подробно процесс регистрации пользователя изображен на рис. 6.4.

Файл /etc/wtmp содержит историю всех регистраций пользователей в системе. Собственником этого файла является системный администратор, и группа у этого файла должна быть аdm, системные привилегии для доступа – 664. При каждом запуске нового процесса login этот файл обновляется. Периодически файл /etc/wtmp должен «обрезаться». В противном случае его размер может быть очень большим.

Следующая командная строка показывает, как ограничить размер этого файла до последних 100 записей.

$ tail –100 /etc/wtmp > /tmp/wtmp

$ mv /tmp/wtmp /etc/wtmp

Обычно задача, запускаемая процессом login, представляет собой интерпретатор команд (командный процессор shell). Перед тем как пользователь начинает работать с shell, выполняются файлы /etc/profile и .profile.

Рис. 6.4. Схема входа в UNIX–систему

Shell позволяет управлять операционной системой, он воспринимает ввод с клавиатуры, анализирует полученные строки, определяет содержащиеся в них инструкции и выполняет предписываемые ими действия.

Когда процесс, порожденный при входе, завершается, то терминал освобождается, и процесс init автоматически создает новый процесс getty для освободившегося устройства. Это дает возможность другому пользователю ”войти” в систему.