Настройка и работа в Linux

         

Регистрация (Login)


После вашего ответа на приглашение getty зарегистрироваться, getty выполняет (exec) программу login. (В общем-то, вы можете заставить getty выполнить любую программу по вашему выбору, но обычно это /bin/login); т.е. getty заменяет себя на login. Хотя это все тот же самый процесс.

Помните, этот процесс был создан init'ом, принадлежащим суперпользователю. Поэтому этот процес, теперь выполняющий login, также принадлежит суперпользователю.

Первое, что делает login - запрашивает ваш пароль. После того, как вы его введете, login проверяет его правильность. Убедившись, что это так, login переходит к выполнению следующих задач:

  • Заменяет идентификатор владельца процесса на ваш.
  • Заменяет идентификатор группы процесса на вашу группу.
  • Помещает запись в базу данных пользовательских счетов (файл "utmp"), показывая, что вы зарегистрировались. Технически эта база данных сегодня не нужна, но все еще используется старыми программами, такими как who, чтобы сообщать об имени и терминалах зарегистрированных пользователей.
  • Заменяет дополнительные группы процесса на все группы, к которым вы принадлежите.
  • Устанавливает ваш домашний каталог текущим рабочим каталогом процесса.
  • Делает вас владельцем устройства терминала и соответственно устанавливает его атрибуты доступа (permissions).

Следующее, что делает login, - запускает (exec) вашу оболочку shell (которая, в общем-то, может быть любой программой, но обычно является командной оболочкой, например, /bin/bash). Т.е. он заменяет себя на программу оболочки shell.

Чтобы получить всю необходимую информацию, такую, как ваш пароль, uid и программу оболочки, login ищет ваше имя в файле /etc/passwd.



Содержание раздела