- Стартовые файлы оболочки Bash
- /etc/profile
- Директория /etc/profile.d
- /etc/profile.d/dircolors.sh
- /etc/profile.d/extrapaths.sh
- /etc/profile.d/readline.sh
- /etc/profile.d/tinker-term.sh
- /etc/profile.d/umask.sh
- /etc/profile.d/X.sh
- /etc/profile.d/xterm-titlebars.sh
- /etc/profile.d/i18n.sh
- Другие значения инициализации
- /etc/bashrc
- /etc/dircolors
- Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей
- Глава 28. Профили пользователей
- Системный профиль
- Обзор сценариев дистрибутива Debian
- Обзор сценариев дистрибутива RHEL5
- Практическое задание: профили пользователей
- Корректная процедура выполнения практического задания: профили пользователей
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Профили пользователя Bash
Стартовые файлы оболочки Bash
Программа оболочка /bin/bash (в дальнейшем называемая просто «оболочка») использует набор стартовых файлов для помощи создания окружения.Каждый файл имеет специфическое использование. Файлы в директории /etc обычно предоставляют глобальные установки. Если аналогичные файлы присутствуют в вашей домашней директории, то они могут заменить глобальные установки.
Интерактивнвя регистрация оболочки запускается после успешного входа, используя /bin/login, который читает файл /etc/passwd. Эта оболочка во время загрузки читает /etc/profile и его персональный эквивалент
Интерактивнвя нерегистрированная оболочка запускается из командной строки (т.е. [prompt]$ /bin/bash ) или командой /bin/su . Интерактивнвя нерегистрированная оболочка так же запускается вместе с программами терминалов, такими как xterm или konsole в графической среде. Этот тип оболочек копирует основное окружение и затем читает пользовательский файл
/.bashrc для дополнительных инструкций конфигурации.
Неинтерактивная оболочка обычно присутствует при загрузке стартовых скриптов. Она неинтерактивная потому, что она выполняет скрипт и не ожидает ввода от пользователя между выполнением команд. Для такой оболочки используется окружение только из основной оболочки.
/.bash_logout не используется для вызова оболочки. Он читается и выполняется при появлении пользователя после интерактивной регистрации.
К стандартным файлам относится /etc/bashrc, вызываемый из пользовательского
/.bashrc для системной инициализации нерегистрированных оболочек.
Для большей информации смотрите info bash — Ноды: Стартовые файлы Bash и интерактивные оболочки.
/etc/profile
Здесь приведен базовый /etc/profile. Этот файл запускается для установки некоторых помогающих функций и базовых параметров. Он описывает некоторые параметры истории команд bash и в целях безопасности убирает поддержку постоянного файла истории для пользователя roor. Он так же устанавливает вид системного приглашения. Затем он вызывает маленький скрипт в директории /etc/profile.d для предоставления большей инициализации.
Для большей информации по escape-последовательностям, которые вы можете использовать для вашего системного приглашения (т.е. переменной окружения PS1), обратитесь к info bash — Нода: Печать системного приглашения.
Директория /etc/profile.d
Теперь создадим директорию /etc/profile.d, в которой размещены индивидуальные скрипты инициализации.
/etc/profile.d/dircolors.sh
Этот скрипт использует файлы
/.dircolors и /etc/dircolors для управления цветом файлов в листинге директории. Они раскрашивают вывод таких команд, как ls —color . Разъяснение по инициализации этих файлов находится в конце этого раздела.
/etc/profile.d/extrapaths.sh
Этот скрипт добавляет некоторые полезные пути к переменным окружения PATH и PKG_CONFIG_PATH. Если хотите, вы можете раскоментировать последний раздел для размещения точки в конце вашего пути. Это позволит исполняемым файлам в текущей рабочей директории запускаться без указания ./, хотя мы предупреждаем, что обычно это связано с риском для безопасности.
/etc/profile.d/readline.sh
Этот скрипт настраивает файл конфигурации inputrc. Если пользователь не имеет индивидуальных установок, он использует глобальный файл.
/etc/profile.d/tinker-term.sh
Некоторые приложения требуют описания установки TERM для поддержки цвета.
/etc/profile.d/umask.sh
Установка значения umask важна для безопасности. Здесь права доступа для записи группы по умолчанию выключены для пользователей системы и когда имена пользователя и группы не совпадают.
/etc/profile.d/X.sh
Если X установлены, переменные PATH и PKG_CONFIG_PATH так же обновляются.
/etc/profile.d/xterm-titlebars.sh
Этот скрипт показывает пример другого пути установки системного приглашения. Обычная переменная PS1 дополнена PROMPT_COMMAND. Если переменная установлена, значение PROMPT_COMMAND выполняется как команда перед выводом каждого первичного приглашения.
/etc/profile.d/i18n.sh
Этот скрипт показывает установку некоторых переменных окружения, необходимых для поддержки различных языков. Правильная установка этих переменных даст вам:
вывод программ, транслированный на ваш язык
правильную классификацию символов в буквы, цифры и другие классы – это необходимо для Bash для работы в не английских локалях
правильный алфавитный порядок сортировки для для вашей страны
правильный размер бумажной страницы
правильный фомат денег, значения времени и даты
Замените [ll] ниже на двух-буквенный код для требуемого языка (т.е. “ ru ”) и [CC] на на двух-буквенный код страны (т.е. “ RU ”). Так же может быть необходимо указание (и это актуальная и предпочтительная форма) кодировки символов (т.е. “ koi8-r ”) после точки (так, что в результате будет “ ru_RU.koi8-r ”). Используйте следующую команду для большей информации:
Список всех локалей, поддерживаемых Glibc может быть получен запуском следующей команды:
Как только подходящие параметры локали будут определены, создайте файл /etc/profile.d/i18n.sh:
Переменная LC_ALL устанавливает одинаковое значение для всех категорий локализации. Для лучшего контроля вы можете предпочесть установку значений индивидуально для всех категорий, перечисленных в выводе команды locale .
Переменная G_FILENAME_ENCODING говорит таким приложениям, как Glib и GTK + , что имена файлов находятся по умолчанию в кодировке локали, а не в UTF -8, как предполагалось по умолчанию.
Другие значения инициализации
Другие инициализации могут быть легко добавлены в profile добавлением дополнительных скриптов в директорию /etc/profile.d.
/etc/bashrc
Это базовый /etc/bashrc. Коментарии в файле должны все вам объяснить.
/.bash_profile. Если вы хотите, чтобы каждый новый пользователь имел этот файл автоматически, просто измените вывод команды на /etc/skel/.bash_profile и проверьте права доступа после выполнения команды. Затем вы можете скопировать /etc/skel/.bash_profile в домашние директории уже имеющихся пользователей, включаяя root, и установить соответствующего владельца и группу.
/.bashrc. Коментарии и инструкции по использованию /etc/skel для .bash_profile, описанного выше, применимы и здесь но с другим конечным именем файла.
Это пустой файл
/.bash_logout, который может быть использован как временный. Заметьте, что базовый
/.bash_logout не включает команду clear. Это потому, что clear поддерживается в файле /etc/issue.
/etc/dircolors
Если вы хотите использовать возможности dircolors, то выполните следующую команду. Шаги по установке /etc/skel, описанные выше, так же могут быть использованы здесь для предоставления файла
/.dircolors при установке нового пользователя. Как раньше, просто измените имя выходного файла в следующей команде и установите права доступа, владельца и группу у созданных и/или скопированных фалов.
Если вы желаете настроить цвета, используемые для различных типов файлов, вы можете отредактировать файл /etc/dircolors. Инструкции по установке цветов находятся внутри файла.
И напоследок, Ian Macdonald написал превосходную колекцию советов и трюков для расширения окружения вашей оболочки. Вы можете прочитать их на http://www.caliban.org/bash/index.shtml .
Последнее обновление 2005-01-16 09:56:15 -0700
Источник
Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей
Глава 28. Профили пользователей
Вошедшие в систему пользователи получают в свое распоряжение множество установленных (и изменяемых) псевдонимов команд, переменных и функций, но откуда они берутся? Командная оболочка использует множество загрузочных файлов сценариев, которые исполняются (или подключаются ) в момент ее вызова. Ниже приводится обзор упомянутых загрузочных сценариев.
Системный профиль
Как командная оболочка bash , так и командная оболочка ksh будет проверять существование файла /etc/profile и подключать его в случае существования.
При чтении данного файла вы можете обнаружить (как в дистрибутиве Debian, так и в дистрибутиве Red Hat Enterprise Linux), что именно его силами создается переменная окружения PATH (помимо других переменных окружения). Данный сценарий также может изменять значение переменной окружения PS1, устанавливать значение переменной окружения HOSTNAME и исполнять дополнительные сценарии, такие, как /etc/inputrc .
Пользователь root может использовать данный сценарий для объявления псевдонимов команд, функций и переменных для каждого из пользователей в системе.
В том случае, если данный файл существует в домашней директории пользователя, командная оболочка bash осуществит его подключение. В дистрибутивах Debian 5/6/7 данного файла по умолчанию не существует.
/.bash_profile , который проверяет существование сценария
/.bashrc и осуществляет его подключение в случае существования. Также он добавляет путь к директории $HOME/bin к списку путей, хранящемуся в переменной окружения $PATH.
Если сценария .bash_profile не существует, командная оболочка bash будет выполнять проверку существования сценария
/.bash_login и его подключение в случае существования.
Данного файла не существует по умолчанию ни в дистрибутиве Debian, ни в дистрибутиве Red Hat.
Если в домашней директории пользователя не существует ни сценария
/.bash_profile , ни сценария
/bash_login , командная оболочка bash будет проверять наличие сценария
/.profile и исполнять его. По умолчанию данного сценария не существует в дистрибутиве Red Hat.
/.bashrc и добавлять путь к директории $HOME/bin в список директорий, хранящийся в переменной окружения $PATH.
По умолчанию данного файла не существует в дистрибутивах RHEL/CentOS.
/.bashrc обычно подключается средствами других сценариев. Давайте рассмотрим задачи, решаемые этим сценарием по умолчанию.
/.bashrc , проверяющий существование сценария /etc/bashrc и подключающий его в случае существования. Также он позволяет объявлять специальные псевдонимы команд и функции.
При завершении работы командная оболочка bash может исполнять сценарий
Обзор сценариев дистрибутива Debian
Ниже приведена таблица для дистрибутива Debian с указанием моментов запуска каждого из описанных стартовых сценариев командной оболочки bash.
Таблица 28.1. Пользовательское окружение дистрибутива Debian
/.bashrc
/.profile
Обзор сценариев дистрибутива RHEL5
Ниже приведена таблица для дистрибутива Red Hat Entrprise Linux 5 с указанием моментов запуска каждого из описанных стартовых сценариев командной оболочки bash.
Таблица 28.2. Пользовательское окружение дистрибутива Red Hat
/.bashrc
/.bash_profile
Практическое задание: профили пользователей
1. Выведите список всех файлов профиля пользователя в вашей системе.
2. Прочитайте содержимое каждого из этих файлов, обычно в них осуществляется подключение дополнительных сценариев.
3. Объявите уникальную переменную, псевдоним команды и функцию в каждом из этих файлов.
4. Воспользуйтесь различными способами получения командной оболочки (su, su -, ssh, tmux, gnome-terminal, Ctrl-Alt-F1, . ) и проверьте, какие из объявленных вами переменных, псевдонимов команд и функций присутствуют в вашем пользовательском окружении.
5. Можете ли вы сходу определить последовательность исполнения обнаруженных стартовых сценариев?
6. Если работа приложения зависит от значения объявленной в файле $HOME/.profile переменной, имеет ли значение существование файла $HOME/.bash_profile или нет?
Корректная процедура выполнения практического задания: профили пользователей
1. Выведите список всех файлов профиля пользователя в вашей системе.
2. Прочитайте содержимое каждого из этих файлов, обычно в них осуществляется подключение дополнительных сценариев.
3. Объявите уникальную переменную, псевдоним команды и функцию в каждом из этих файлов.
4. Воспользуйтесь различными способами получения командной оболочки (su, su -, ssh, tmux, gnome-terminal, Ctrl-Alt-F1, . ) и проверьте, какие из объявленных вами переменных, псевдонимов команд и функций присутствуют в вашем пользовательском окружении.
5. Можете ли вы сходу определить последовательность исполнения обнаруженных стартовых сценариев?
Нет, так как при совпадении имен псевдонимов команд, функций и переменных производится их перезапись.
6. Если работа приложения зависит от значения объявленной в файле $HOME/.profile переменной, имеет ли значение существование файла $HOME/.bash_profile или нет?
Да, имеет. (Обратитесь к странице руководства man bash /INVOCATION)
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Профили пользователя Bash
4 минуты чтения
В данной статье рассматривается вопросы настройки и использования командной оболочки.
- Установка переменных во время входа в систему или при запуске оболочки.
- Написание bash-сценариев для часто используемых цепочек команд.
- Управление структурой каталогов для новых пользователей.
- Настройка корректных путей поиска команд.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Командная оболочка в Unix системах называется Shell – это командный интерпретатор, который используется во всех Unix подобных операционных системах. Оболочек огромное количество. Одной из основных оболочек является оболочка BASH или Bourne-again-shell (Еще одна оболочка Борна). Данная оболочка самая распространенная оболочка Unix, которая используется по умолчанию практически во всех дистрибутивах Linux. Все, о чем будет написано далее справедливо для большинства дистрибутивов Linux. Есть небольшой нюанс с Ubuntu.
Есть вот такая картинка по профилям. Значок
в данном случае означает домашнюю папку пользователя по умолчанию. Например, /home/john .
Существует папка /etc/profile в ней лежат настройки глобального профиля. Такой профиль, который будет применяться для всех пользователей на данной машине, которые запускают командную оболочку. Функционал у него достаточно большой, но в первую очередь он грузит все что есть в /etc/profile.d и настройки глобального пользователя /etc/bash.bashrc и /etc/bashrc . Получается так, что ищется файл bash.bashrc или bashrc файлы, т.к в разных дистрибутивах разные файлы и грузит то, что он нашел. В документации по Linux написано, если запускается инициализационный скрипт при входе в систему, т.е пользователь заходит в систему, то отрабатывает левая часть картинки, если запускается оболочка вне контекста пользователя, то правая часть.
Если пользователь залогинился в систему, то помимо того, что отрабатывает папка /etc/profile.d начинается проверка в домашнем каталоге пользователя наличие файлов
/.profile . В разных дистрибутивах по-разному называется локальный профиль пользователя. В Ubuntu файл
/.profile просто ссылит на
/.bashrc , который так же лежит в домашней папке пользователя. Т.е у нас по порядку инициализационный скрипт ищет, как указанно в левой части картинки. Точкой у Ubuntu обозначаются скрытые файлы.
/.bashrc – это настройки конкретного пользователя, настройки оболочки. Файл /etc/bashrc – это настройки глобального пользователя, настройки для всех пользователей.
Суть процесса: оболочка bash используется, как интерактивная оболочка входа в систему. Данная оболочка вызывает команды из файла /etc/profile , если он существует. Далее она по порядку начинает обрабатывать файлы
/.profile . И еще есть такой файл в home директории
/.bash_logout – он отрабатывает при выходе из системы, что следует из его названия.
Есть второй сценарий, использование интерактивной оболочки bash, без входа в систему, то читаются файлы /etc/bash.bashrc и /etc/bashrc .
Мы можем посмотреть, что происходит при запуске оболочки. Для начала найдем файл /etc/profile .
Из картинки мы видим, что данный файл грузит /etc/bash.bashrc , в некоторых дистрибутивах это просто /etc/bashrc . И затем он выполняет из папки /etc/profile.d/*.sh , т.е все скрипты. Об этом можно прочитать в комментарии, всего два действия.
Посмотрим файл cat /etc/bash.bashrc .
Данный файл определяет поведение командной строки, он определяет глобальный профиль пользователей. Все, что в нем указанно справедливо для всех пользователей. Данный файл запускает различные псевдонимы и глобальные функции, различные настройки.
В каталоге /etc , есть папка profile.d , в ней могут находиться различные скрипты и они будут запускаться.
Теперь посмотрим, что у нас в домашней папке, в ней лежат настройки конкретного пользователя, который работает в оболочке. Переходим в домашнюю директорию cd
, смотрим какие файлы там находятся.
Смотрим очередность запуска файлов и видим, что следующий файл, который запустится, будет
/.profile . он содержит настройки конкретного пользователя. Посмотрим, что в нем есть cat
В нем несколько переменных и он ссылит на файл
/.bashrc . Это особенность Ubuntu. И в файле
/.bashrc хранятся все настройки.
Он достаточно большой. В нем пишутся настройки истории, как происходит обновление, псевдонимы, цветовые настройки.
Можно посмотреть файл
В данном файле нет ничего особенного, просто, когда кто-то выходит экран в целях безопасности очищается.
Посмотрим, как создается структура каталогов для новых пользователей. Есть такая папка в /etc/skel/ . Если мы туда перейдем и посмотрим, что в ней находиться.
Как вы видите в папке есть несколько файлов. В ней содержится все, то что будет добавляться в домашнюю папку нового пользователя. Если мы хотим пользователю, что-то добавить в его домашнюю папку, мы можем создать в данной папке файл или директорию. И у всех новых пользователей данные папки или файлы будут появляться.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник