Поиск по сайту:

Во всякой стране молодое поколение — всегда иностранцы (А. Сталь).

Что такое оболочка входа в Linux?

4 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
19 января 2021
Что такое оболочка входа в Linux?
Оболочка входа в систему – это первый процесс, который выполняется с вашим идентификатором пользователя при входе в интерактивный сеанс.

На первый взгляд это может показаться простым, но если копнуть глубже, это может немного запутать. Чтобы понять это, давайте посмотрим еще раз на процесс входа в систему в системах Linux.

Linux – это многопользовательская система, в которой несколько пользователей могут войти в систему и использовать ее одновременно.

Первый процесс в системе Linux, будь то init или systemd, запускает программу getty. Getty, сокращение от get tty (tty обозначает физические или виртуальные терминалы), отвечает за защиту системы от несанкционированного доступа.

Что такое оболочка входа в Linux?

 

Когда вы пытаетесь подключиться к системе Linux либо напрямую (если у вас есть сервер, установленный в системе локально), либо через SSH (если у вас есть сервер в удаленном месте), getty предлагает (через программу входа в систему) ввести ваше имя пользователя. а при вводе имени пользователя запрашивается пароль.

Ваши записи сверяются с информацией, хранящейся в файле /etc/passwd. Записи в файле /etc/passwd содержат некоторую информацию, такую как имя пользователя, идентификатор пользователя, домашний каталог и первую программу, которая должна быть запущена после успешного входа в систему.

В этом поле могут быть и другие значения. Например, sshd – это системный пользователь, а не настоящий пользователь, и он не может войти в систему в интерактивном режиме, как обычный пользователь, такой как abhishek.

sshd:x:110:65534::/run/sshd:/usr/sbin/nologin

 

Если в столбце первой программы/журнала в оболочке нет записи, по умолчанию используется /bin/sh, то есть стандартная оболочка.

 

Оболочка входа и оболочка без входа

Хорошо, вы вошли в систему и знаете, что это оболочка входа. Но что это значит? Есть ли и другие снаряды? Где они?

В Linux, когда вы запускаете сценарий оболочки, он запускается в своей собственной оболочке (неинтерактивной оболочке). Вы можете запустить новую оболочку из текущей оболочки (интерактивной оболочки).

Читать  Docker/Docker Compose/Docker Run host network vs bridge network (как настроить режим моста/хоста для docker, с помощью команды run или docker compose)

С технической точки зрения это подоболочка, но об этом позже. Давайте пока сосредоточимся на оболочке входа в систему.

 

Профиль и файлы RC для оболочки

Оболочка входа в систему считывает переменную среды и другую конфигурацию из /etc/profile и файла профиля в домашнем каталоге. Это позволяет вам иметь завершение табуляции, цветной вывод и устанавливать другие вещи, такие как umask и т. д.

Вы, наверное, знаете, что для систем Linux доступно более одной оболочки . В большинстве дистрибутивов Linux по умолчанию используется оболочка bash, но вы можете установить другую оболочку, например zsh или Fish.

Если ваша оболочка входа в систему – bash, она читает из файлов /etc/profile и ~/.bash_profile. Если ваша оболочка входа – zsh, она читает из /etc/zprofile и ~/.zprofile.

Файлы в каталоге /etc задают соответствующую конфигурацию оболочки для всех пользователей системы. Обычно это настраивает системный администратор.

Очевидно, что файлы в домашнем каталоге пользователя зависят от пользователя. Это позволяет пользователям создавать псевдонимы для часто используемых команд или использовать пользовательскую переменную PATH для программы.

Оболочки без входа в систему происходят из оболочки входа в систему и, следовательно, получают всю среду, установленную оболочкой входа в систему, через файлы профиля. В дополнение к этому, интерактивная оболочка, не входящая в систему, может определять свои собственные переменные среды через файлы rc (конфигурации ресурсов) в /etc или домашнем каталоге.

Для оболочки bash это обычно файлы /etc/bash.bashrc и ~/.bash_rc, а для оболочки zsh это /etc/zshrc и ~/.zshrc.

 

Обратите внимание, как приглашение оболочки меняет цвет на зеленый? Это потому, что он читает файл /etc/bash.bashrc, а Ubuntu поместила в этот файл дополнительные параметры. Цветная подсказка – одна из них.

Подвести итоги:

  • Файлы профиля предназначены для интерактивных оболочек входа. Файлы rc предназначены для интерактивных оболочек без входа в систему.
  • Сначала выполняются файлы в каталоге /etc, а затем файлы в домашнем каталоге.
  • Интерактивные оболочки без входа в систему выигрывают от файлов профиля и rc.
Читать  Как использовать файл конфигурации SSH

 

Как узнать, что вы находитесь в оболочке входа в систему?

На самом деле это очень просто, по крайней мере, для оболочки bash. Для оболочки входа имя исполняемого файла оболочки начинается с -. Для оболочки без входа в систему это просто имя оболочки.

Вы ведь умеете проверять оболочку? Вы проверяете значение аргумента 0.

На настольном Linux вы не используете оболочку входа. Ваш логин управляется менеджером дисплея. Вот почему, когда вы откроете терминал на рабочем столе Linux, вы увидите, что даже первая оболочка, запущенная в терминале, не является оболочкой входа.

Я попытался объяснить здесь оболочку входа. Однако, если вы никогда не задумывались об этих вещах, это может оставить некоторые вопросы без ответа. Не стесняйтесь спрашивать об этом в комментариях, и я постараюсь на них ответить.

Если вы опытный пользователь, читающий это, и обнаружите, что что-то технически некорректно или отсутствует какой-то важный момент, сообщите мне об этом в комментариях.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close