
- •Часть первая. Введение в операционную систему Linux
- •Глава 1. Обзор возможностей операционной системы Linux 1
- •Глава 2. Стандартизация unix-подобных операционных систем 23
- •Глава 1. Обзор возможностей операционной системы Linux
- •1.1. Введение
- •1.2. Краткая история Linux
- •1.3. Архитектура unix-подобных операционных систем
- •1.4. Введение в архитектуру ядра unix-подобных операционных систем
- •1.5. Справочная подсистема (man)
- •1.6. Файлы и каталоги
- •1.7. Ввод и вывод
- •1.8. Программы и процессы
- •1.9. Обработка ошибок
- •1.10. Вход в систему и идентификация пользователя
- •1.11. Сигналы
- •1.12. Интерпретатор shell
- •1.12.1. Сокращенное имя файла
- •1.12.2. Переключение ввода-вывода
- •1.12.3. Программные каналы
- •1.12.4. Создание среды
- •1.13. Системные вызовы и библиотечные функции
- •1.14. Выводы по главе 1
- •1.15. Упражнения по главе 1
- •Глава 2. Стандартизация unix-подобных операционных систем
- •2.1. Введение
- •2.2. Стандарты unix
- •2.2.1. Iso c
- •2.2.2. Ieee Posix
- •2.2.3. Single unix Specification
- •2.3. Пределы
- •2.4. Функции sysconf, pathconf и fpathconf
- •2.5. Элементарные системные типы данных
- •2.6. Выводы по главе 2
- •2.7. Упражнения по главе 2
1.10. Вход в систему и идентификация пользователя
При входе в ОС Linux мы вводим имя пользователя и пароль. После этого система отыскивает введенное имя в файле паролей; обычно это файл /etc/passwd. Файл паролей содержит учетные записи пользователей, каждая из которых состоит из семи полей, разделенных двоеточиями: имя пользователя, зашифрованный пароль, числовой идентификатор пользователя, числовой идентификатор группы, поле комментария, домашний каталог и командный интерпретатор. Ниже приведен пример учетной записи:
sergeant:x:762:762::/home/sergeant:/bin/bash
Все современные системы хранят зашифрованные пароли пользователей в отдельном файле. В главе 6 мы рассмотрим эти файлы и некоторые функции для доступа к ним.
Обычно после входа в систему на экран выводится некоторая системная информация, после чего мы можем вводить команды, предназначенные для командной оболочки. Командная оболочка – это интерпретатор командной строки, который считывает ввод пользователя и выполняет команды. Ввод пользователя обычно осуществляется посредством терминала (интерактивное взаимодействие) или считывается из файла (сценарий оболочки). Информацию о том, какой командный интерпретатор следует запустить, система извлекает из учетной записи пользователя в файле /etc/passwd. ОС Linux использует Bourne-again shell (/bin/bash) как командный интерпретатор по умолчанию.
Идентификатор пользователя из учетной записи в файле паролей представляет собой числовое значение, которое однозначно идентифицирует пользователя. Идентификатор пользователя назначается системным администратором при создании учетной записи и не может быть изменен самим пользователем. Как правило, каждому пользователю назначается уникальный идентификатор. Ниже мы узнаем, как ядро использует идентификатор пользователя для проверки прав на выполнение некоторых операций.
Пользователь с идентификатором 0 называется суперпользователем. В файле паролей этому пользователю обычно присвоено имя root. Обращаем ваше внимание на то, что этот пользователь обладает особыми привилегиями суперпользователя. Как мы увидим в главе 4, если процесс имеет привилегии суперпользователя, большинство проверок прав доступа к файлам просто не выполняется. Некоторые системные операции доступны только суперпользователю. Суперпользователь обладает неограниченной свободой действий в системе.
Кроме всего прочего, запись в файле паролей содержит числовой идентификатор группы. Он также назначается системным администратором при создании учетной записи. Как правило, в файле паролей имеется несколько записей с одинаковым идентификатором группы. Обычно группы используются для распределения пользователей по проектам или отделам. Это позволяет организовать совместное использование ресурсов, например файлов, членами определенной группы.
В системе существует файл, хранящий учетные записи групп, в котором указаны соответствия имен групп их числовым идентификаторам. Обычно этот файл называется /etc/group.
В дополнение к группе, идентификатор которой указан в файле паролей, ОС Linux позволяют пользователю быть членом других групп. Во время входа в систему из файла /etc/group извлекаются имена первых 16 групп, в которых присутствует имя данного пользователя, и их идентификаторы назначаются идентификаторами дополнительных групп.