Профили пользователей
При входе пользователей в сеанс автоматически выполняются специальные файлы сценариев, называемые профилями пользователей. Обычный подход к хранению настроек оболочки состоит в разделении настроек (профилей) на глобальный профиль (Master Profile) и пользовательские профили (Login Pro- files). Кроме профилей имеются еще и специальные файлы настроек оболо- чек (resource files), которые также являются сценариями оболочек. Отличие профилей от файлов ресурсов состоит в том, что сценарии профилей испол- няются единожды при входе пользователя в сеанс, а файлы ресурсов запус- каются при запуске оболочки из командной строки.
Если оболочка Bash запущена интерактивно при входе пользователя в сеанс (т. е. является оболочкой по умолчанию), то сначала исполняется общий для всех пользователей файл /etc/profile, а затем индивидуальный профиль поль- зователя, находящийся в его домашнем каталоге. При запуске оболочка Bash
последовательно пытается найти пользовательский профиль в файлах с име- нами:
r ~/.bash_profile;
r ~/.bash_login;
r ~/.profile.
В файлах профилей обычно устанавливаются такие переменные окружения, как:
r PATH — имена каталогов, в которых Bash ищет исполняемые файлы;
r TERM — тип терминала;
r USER — имя пользователя (устанавливается с помощью id -un);
r HOME — путь к домашнему каталогу пользователя;
r MAIL — путь к почтовому ящику пользователя.
Переменные окружения, устанавливаемые в файлах профилей, должны быть экспортированы с помощью команды export. В примере 17.16 к списку ката- логов в переменной окружения PATH добавляется каталог bin в домашнем ка- талоге.
Пример 17.16. Назначение значения переменной PATH |
PATH=$PATH:$HOME/bin export PATH
Имена каталогов, содержащихся в переменной PATH, разделяются двоеточиями. Помимо переменных окружения в файлах профиля также устанавливается
umask.
При необходимости исполнить файл профиля из командной строки следует использовать команду source (пример 17.17).
Пример 17.17. Команда source |
# source /etc/profile
Эта команда является встроенной и выполняет в текущей оболочке команды из файла, указанного в качестве аргумента.
В противоположность профилям файл ресурсов оболочки ~/.bashrc выполня- ется только при интерактивном запуске оболочки Bash из командной строки, а не при входе в сеанс. Для того чтобы дополнительные настройки оболочки
срабатывали не только при запуске оболочки из командной строки (т. е. из уже запущенной оболочки), но и при запуске Bash по умолчанию при входе в сеанс, вызов инструкций в файле ~/.bashrc часто производится из пользова- тельского профиля. Типичное содержимое файла пользовательского профиля показано в примере 17.18.
Пример 17.18. Профиль пользователя |
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi BASH_ENV=$HOME/.bashrc export BASH_ENV
Здесь приведен пример содержимого файла пользовательского профиля, в котором проверяется наличие в домашнем каталоге пользователя файла ресурсов оболочки, и, если он есть, содержимое его выполняется в контек- сте текущей оболочки. Это достигается с помощью inline-подстановки — команды "точка" (.). Вызов . ~/.bashrc приводит к тому, что переменные, псевдонимы и функции, определенные в файле ресурсов, будут доступны в текущей оболочке. Inline-подстановка всегда используется для передачи из одного файла сценария оболочки в другой сценарий переменных, псевдони- мов и функций.
Переменная окружения BASH_ENV, определенная в примере 17.18, предназна- чена для информирования оболочки, запускаемой неинтерактивно (например, для выполнения сценария), что должны быть использованы ресурсы, опреде- ленные в файле, имя которого содержится в этой переменной.
Довольно часто в файле ~/.bashrc находится inline-вызов общесистемного файла ресурсов /etc/bashrc. Это не обязательно, но очень удобно, т. к. в этом файле можно определить, например, псевдонимы для команд, которыми час- то пользуются различные пользователи системы, вместо определения этих псевдонимов в частных файлах ресурсов оболочки ~/.bashrc.
Итак, далее приведен список действий, которые обычно выполняются авто- матически при входе в сеанс Bash:
1. Исполняется общесистемный скрипт профиля /etc/profile.
2. Выполняется пользовательский скрипт профиля в его домашнем каталоге
(например, ~/.bash_profile).
3. В пользовательском профиле проверяется наличие в домашнем каталоге файла ресурсов оболочки ~/.bashrc, и, при его наличии, он исполняется.
4. Если исполняется файл ресурсов оболочки, то обычно в нем вызывается общесистемный файл ресурсов /etc/bashrc.
5. При запуске оболочки из командной строки выполняются пункты 3 и 4
списка.
Дата добавления: 2015-06-12; просмотров: 852;