img

Профили пользователя Bash

В данной статье рассматривается вопросы настройки и использования командной оболочки.

Вопросы:

  1. Установка переменных во время входа в систему или при запуске оболочки.
  2. Написание bash-сценариев для часто используемых цепочек команд.
  3. Управление структурой каталогов для новых пользователей.
  4. Настройка корректных путей поиска команд.

Командная оболочка в 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 начинается проверка в домашнем каталоге пользователя наличие файлов ~/.bash_profile, ~/.bash_login, ~/.profile. В разных дистрибутивах по-разному называется локальный профиль пользователя. В Ubuntu файл ~/.profile просто ссылит на ~/.bashrc, который так же лежит в домашней папке пользователя. Т.е у нас по порядку инициализационный скрипт ищет, как указанно в левой части картинки. Точкой у Ubuntu обозначаются скрытые файлы.

Вот этот файл ~/.bashrc – это настройки конкретного пользователя, настройки оболочки. Файл /etc/bashrc – это настройки глобального пользователя, настройки для всех пользователей.

Суть процесса: оболочка bash используется, как интерактивная оболочка входа в систему. Данная оболочка вызывает команды из файла /etc/profile, если он существует. Далее она по порядку начинает обрабатывать файлы ~/.bash_profile, ~/.bash_login, ~/.profile. И еще есть такой файл в home директории ~/.bash_logout – он отрабатывает при выходе из системы, что следует из его названия.

Есть второй сценарий, использование интерактивной оболочки bash, без входа в систему, то читаются файлы /etc/bash.bashrc и /etc/bashrc.

Мы можем посмотреть, что происходит при запуске оболочки. Для начала найдем файл /etc/profile.

/etc/profile

Из картинки мы видим, что данный файл грузит /etc/bash.bashrc, в некоторых дистрибутивах это просто /etc/bashrc. И затем он выполняет из папки /etc/profile.d/*.sh, т.е все скрипты. Об этом можно прочитать в комментарии, всего два действия.

Посмотрим файл cat /etc/bash.bashrc.

cat /etc/bash.bashrc

Данный файл определяет поведение командной строки, он определяет глобальный профиль пользователей. Все, что в нем указанно справедливо для всех пользователей. Данный файл запускает различные псевдонимы и глобальные функции, различные настройки.

В каталоге /etc, есть папка profile.d, в ней могут находиться различные скрипты и они будут запускаться.

profile.d

Теперь посмотрим, что у нас в домашней папке, в ней лежат настройки конкретного пользователя, который работает в оболочке. Переходим в домашнюю директорию cd ~, смотрим какие файлы там находятся.

cd ~

Смотрим очередность запуска файлов и видим, что следующий файл, который запустится, будет ~/.profile. он содержит настройки конкретного пользователя. Посмотрим, что в нем есть cat ~/.profile.

cat ~/.profile

В нем несколько переменных и он ссылит на файл ~/.bashrc. Это особенность Ubuntu. И в файле ~/.bashrc хранятся все настройки.

~/.bashrc

Он достаточно большой. В нем пишутся настройки истории, как происходит обновление, псевдонимы, цветовые настройки.

Можно посмотреть файл ~/.bash_logout.

~/.bash_logout

В данном файле нет ничего особенного, просто, когда кто-то выходит экран в целях безопасности очищается.

Посмотрим, как создается структура каталогов для новых пользователей. Есть такая папка в /etc/skel/. Если мы туда перейдем и посмотрим, что в ней находиться.

/etc/skel/

Как вы видите в папке есть несколько файлов. В ней содержится все, то что будет добавляться в домашнюю папку нового пользователя. Если мы хотим пользователю, что-то добавить в его домашнюю папку, мы можем создать в данной папке файл или директорию. И у всех новых пользователей данные папки или файлы будут появляться.

Ссылка
скопирована
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
  Всплески трафика могут стать как проблемой для вашей инфраструктуры хостинга, так и потрясающей возможностью для развития.  На
img
Подробное руководство, предназначенное для понимания и оптимизации различных типов соединений в SQL, которое повысит вашу произв
img
  Введение Цель резервного копирования и репликации – предотвратить критическую потерю данных в результате непредвиденных событи
img
  Вы можете более эффективно запускать и компилировать свои программы с помощью этого удобного средства автоматизации. Есл
img
Дотфайлы (dotfiles) – это немаловажные файлы, которые могут сыграть ключевую роль в вашей карьере разработчика программного обес
img
Linux Jargon Buster: что такое менеджер пакетов в Linux? Как это работает? То, что позволяет отличать дистрибутивы Linux друг от
Комментарии
ЛЕТНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59