8.2.4. ПРОЦЕССЫ, ПРОИСХОДЯЩИЕ ПРИ РЕГИСТРАЦИИ ПОЛЬЗОВАТЕЛЯ
Последовательность событий при полной регистрации выглядит так.
1. Пользователь вводит регистрационное имя по приглашению login: процесса getty.
2. getty выполняет программу login, используя в качестве аргумента указанное имя.
3. login запрашивает пароль и сверяет имя и пароль с записанными в файле /etc/passwd.
4. login выводит на экран из файла /etc/motd ‘сообщение дня’.
5. login запускает интерпретатор shell, указанный в бюджете пользователя и устанавливает переменную среды TERM.
6. shell выполняет соответствующие файлы запуска, после чего выводит на экран приглашение и ожидает ввода информации.
О файлах запуска надо сказать несколько слов дополнительно. В домашнем каталоге пользователя находятся несколько личных файлов конфигурации. Если таких файлов в домашнем каталоге нет, то после входа в систему будут прочитаны глобальные файлы, содержащие значения ‘по умолчанию’. Если в качестве оболочки используется Bourne-shell, выполняется файл.profile, если C-shell -.login и.cshrc, если Korn-shell -.profile и.kshrc (мы в дальнейшем рассматриваем только случай оболочки bash).
Если вы хотите установить для себя переменные среды (PATH или другие), отличающиеся от тех, которые по умолчанию задаются для всех пользователей, или вы хотите изменить сообщение, которое будет выдаваться вам после входа в систему, или хотите, чтобы после того, как вы войдете в систему, автоматически запускалась какая-то программа, вы можете сделать это с помощью следующих файлов:
/home/your_home/.bashrc – устанавливает ваши алиасы (т. е. псевдонимы или альтернативные имена команд, удобные для упрощения ввода часто используемых команд, имеющих значительную длину из-за большого количества опций) и функции;
/home/your_home/.bash_profile или /home/your_home/.profile – устанавливает переменные среды и запускает ваши программы.
Если такие файлы существуют (заметим, что это скрытые файлы), они будут считаны после входа в систему, и команды, записанные в них, будут выполнены.
Если вы хотите, чтобы при входе пользователя в систему выполнялся какой-то скрипт, то можно вызов этого скрипта поместить в файл ~/.profile. Это может сделать и сам пользователь.
Эти команды будут исполняться только при входе пользователя в систему. Можно, например, приветствовать каждого пользователя по имени или посылать индивидуальные сообщения:
if test $USER = jim; then
echo ‘Здравствуйте, уважаемый Jim!’