4. Что происходит, когда вы входите в систему (log in)?

Когда вы входите в систему (log in) (вводите своё имя в ответ на приглашение getty), вы идентифицируете себя для компьютера. Тогда он запускает программу, называемую (как и следовало ожидать) login, которая запрашивает ваш пароль и проверяет, уполномочены ли вы использовать данную машину. Если нет, то ваша попытка войти в систему будет отклонена. Если да, то login выполнит некоторые служебные операции и запустит командный интерпретатор shell. (Да, getty и login должны бы быть одной программой. Но, по историческим причинам они разделены, ничего заслуживающего внимания в этом нет.)

Есть ещё кое-что, что стоит знать о том, что делает система, прежде чем предоставить в ваше распоряжение командный интерпретатор shell (эти знания пригодятся позже, когда мы будем говорить о правах доступа к файлам). Вы идентифицируете себя, введя своё имя и пароль. Ваше имя (login name) ищется в файле /etc/passwd, который представляет собой последовательность строк, каждая из которых описывает учётную запись пользователя.

Одно из полей этой записи является зашифрованной версией пароля учётной записи (иногда эти зашифрованные поля фактически хранятся в другом файле — /etc/shadow, который имеет более строгие права доступа; это делает взлом паролей более трудным). Пароль, который вы вводите при входе в систему, шифруется тем же способом и программа login проверяет, совпадают ли они. Безопасность этого метода заключается в том, что получить из вашего пароля его зашифрованную версию легко, тогда как выполнить обратное действие очень сложно. Таким образом, если кто-нибудь мог видеть ваш пароль в зашифрованном виде, он не сможет воспользоваться вашей учётной записью для входа в систему. (Это также означает, что если вы забыли пароль, то нет способа его восстановить, только сменить его на другой.)

После того, как вы успешно вошли в систему, вы получаете все права доступа ассоциированные с учётной записью, которую вы использовали. Система может также распознать вас как члена группы (group). Группа — это имеющий собственное название коллектив пользователей, определенный системным администратором. Группы могут иметь свой набор прав доступа, не зависящий от прав доступа входящих в неё пользователей. Пользователь может быть членом множества групп. (Более подробно познакомиться с тем, как работают привилегии в Unix, можно ниже в разделе Владелец файла, права доступа и безопасность.

(Стоит отметить, что несмотря на то, что мы ссылаемся на имена пользователй и групп, в действительности внутри системы они хранятся и представляются числовыми идентификаторами. Файл паролей содержит идентификаторы, сопоставляемые именам учетных записей; файл /etc/group идентификаторы групп. Для программ, которые обращаются к именам пользователей и групп, преобразование в числовые идентификаторы выполняется автоматически.)

Ваша учётная запись содержит также имя вашего домашнего каталога (home directory), место в файловой системе Unix, где живут ваши личные файлы. Ну и наконец, в учётной записи указан используемый вами shell, командный интерпретатор, который запустит для вас программа login, чтобы вы могли вводить команды.