Linux для пользователя
Шрифт:
6. shell выполняет соответствующие файлы запуска, после чего выводит на экран приглашение и ожидает ввода информации.
О файлах запуска надо сказать несколько слов дополнительно. В домашнем каталоге пользователя находятся несколько личных файлов конфигурации. Если таких файлов в домашнем каталоге нет, то после входа в систему будут прочитаны глобальные файлы, содержащие значения "по умолчанию". Если в качестве оболочки используется Bourne-shell, выполняется файл.profile, если C-shell -.login и.cshrc, если Korn-shell -.profile и.kshrc (мы в дальнейшем рассматриваем только случай оболочки bash).
Если вы хотите установить для себя переменные
/home/your_home/.bashrc - устанавливает ваши алиасы (т. е. псевдонимы или альтернативные имена команд, удобные для упрощения ввода часто используемых команд, имеющих значительную длину из-за большого количества опций) и функции;
/home/your_home/.bash_profile или /home/your_home/.profile - устанавливает переменные среды и запускает ваши программы.
Если такие файлы существуют (заметим, что это скрытые файлы), они будут считаны после входа в систему, и команды, записанные в них, будут выполнены.
Если вы хотите, чтобы при входе пользователя в систему выполнялся какой-то скрипт, то можно вызов этого скрипта поместить в файл ~/.profile. Это может сделать и сам пользователь.
Эти команды будут исполняться только при входе пользователя в систему. Можно, например, приветствовать каждого пользователя по имени или посылать индивидуальные сообщения:
if test $USER = jim; then
echo 'Здравствуйте, уважаемый Jim!'
fi
8.2.5. Загрузка в однопользовательском режиме
Процесс загрузки ОС, к сожалению, не всегда происходит так, как это задумано. Бывают случаи, когда система отказывается загружаться нормальным образом. Основные причины, приводящие к такой ситуации [П10.1]:
• неисправности аппаратных средств;
• дефектные блоки на диске, в частности, блоки, в которых находится программа-загрузчик или ядро системы;
• повреждения файловых систем;
• неверно сконфигурированное ядро (например, при попытках установить самостоятельно скомпилированную или экспериментальную версию ядра);
• ошибки в сценариях запуска (появившиеся, например, из-за того, что вы внесли в эти сценарии какие-то исправления).
Первое, что надо знать пользователю в таком случае - как войти в контакт с системой, заставить ее воспринимать команды, чтобы попытаться что-то исправить. Один из возможных вариантов действий в этом случае - попытаться запустить систему в однопользовательском режиме, т. е. с уровнем выполнения 1 (см. разд. 8.2).
Обычно о необходимости перехода в однопользовательский режим говорит то, что fsck не может автоматически восстановить файловую систему при загрузке. В таких случаях бывает необходимо запустить fsck в разделе /usr, для чего требуется, чтобы раздел был размонтирован, а этого нельзя сделать, пока не будут отключены почти все системные службы. Тут-то и требуется перейти в однопользовательский режим, в котором запускается минимум служб и сервисов системы.
Вы можете заставить процесс init загрузить систему в однопользовательском режиме, если зададите в командной строке загрузки ядра (в ответ на приглашение LILO boot:) аргумент single или emergency.
Точнее, в тот момент, когда на экране появится сообщениенеобходимо ввести
где вместо /dev/hda1 надо, естественно, подставить имя раздела с корневой файловой системой. Эта команда подключит корневой раздел и переведет систему в однопользовательский режим. В этом режиме в системе работает только один пользователь - администратор и запускается только очень небольшое число самых необходимых системных служб (system services) - включая login. (Заметим в скобках, что другим способом перевода системы в однопользовательский режим является применение команды telinit, однако в рассматриваемой ситуации, когда не проходит загрузка, воспользоваться этим способом вряд ли удастся).
Из соображений безопасности нормально сконфигурированная система при загрузке оболочки в однопользовательском режиме запросит пароль пользователя root. Это очевидно, так как иначе злоумышленнику было бы очень легко, задав соответствующие аргументы загрузчику LILO, войти в систему как root со всеми вытекающими отсюда последствиями. Чтобы злоумышленники не могли воспользоваться загрузкой в однопользовательском режиме для входа в систему без пароля, в соответствующую секцию файла lilo.conf должны быть добавлены две строки:
После выхода в оболочку вы сможете отменить те правки, которые привели к краху или предпринять какие-то другие действия по выходу из сбойной ситуации. В книге Д. Такета и С.Барнета [П1.9] сказано, что этот способ не работает, если корневой раздел находится на диске SCSI. Однако, возможно, это относится к старым версиям Linux, поскольку один из моих корреспондентов (Р.Сузи) уверяет, что со SCSI-дисками никаких проблем нет, и система грузится с них в любом режиме, лишь был бы доступен initrd. Ну, а если загрузиться в однопользовательском режиме все же не получается, можно попробовать загрузить систему с загрузочной дискеты, так что позаботьтесь о том, чтобы такая дискета у вас была.
Кстати, не дожидаясь возникновения чрезвычайных ситуаций, проверьте, как будет у вас проходить загрузка в однопользовательский режим и загрузка с аварийной дискеты. После этого, если неприятности все же возникнут, вы будете чувствовать себя значительно спокойнее.
8.3. Запуск и настройка общесистемных сервисов
Теперь, когда вы знаете, как загрузиться даже в сложной ситуации, можно приступить к экспериментам по изменению конфигурации и настроек системы. И начать изложение этих вопросов надо, конечно, с вопроса организации монтирования необходимых файловых систем.
8.3.1. Редактирование файла /etc/fstab
Файловая система - один из важнейших общесистемных сервисов. Монтирование основных файловых систем осуществляется на этапе загрузки системы. Другие (дополнительные) файловые системы монтируются командой mount, которая была рассмотрена в разд. 4.8. Конфигурационным файлом для команды монтирования является файл /etc/fstab, который тоже был рассмотрен в разд. 4.8. Поэтому здесь не будем повторяться, а ограничимся тем, что приведем несколько советов, которые позволят несколько снизить трудоемкость процедур монтирования файловых систем.