Что означает вход в Linux

Обновлено: 30.06.2024

логин [ -h Имя хоста ] [ -p ] [ -f Пользователь ] [ Пользователь [ Среда ] ]

Описание

Команда входа в систему (часть команды tsm) инициирует сеансы в системе для пользователя, указанного в параметре User . Вы также можете указать переменные среды, которые будут добавлены в среду пользователя. Это строки вида Переменная = Значение. Команда входа в систему обычно не вводится в командной строке.

<ПР>
  • Переменные среды PATH , IFS , HOME и SHELL нельзя инициализировать из командной строки.
  • Команда входа поддерживает многобайтовые имена пользователей. Системному администратору рекомендуется ограничить имена пользователей символами из переносимого набора символов, чтобы устранить любую двусмысленность.
  • Если файл /etc/nologin существует, система запрещает пользователю вход в систему и отображает содержимое файла /etc/nologin. Система позволяет пользователю root войти в систему, если этот файл существует. Файл /etc/nologin удаляется при перезагрузке системы.
  • Команда входа может обрабатывать имена пользователей распределенной вычислительной среды (DCE) длиной до 1024 символов. Имена пользователей DCE хранятся в переменной среды LOGIN. Поскольку имена пользователей DCE не соответствуют стандартным требованиям к операционной системе, первые 8 символов имени пользователя DCE хранятся во всех стандартных файлах и средах операционной системы.

    Команда входа выполняет следующие функции:

    Проверка учетных записей Команда входа в систему проверяет учетную запись пользователя, обеспечивая порт, используемый для входа в систему.
    Аутентифицирует пользователей Команда входа проверяет личность пользователя с помощью определяемые системой методы аутентификации для каждого пользователя. Если срок действия пароля истек, пользователь должен ввести новый пароль. Если определены вторичные методы аутентификации, эти методы вызываются, но не обязательно должны быть успешными для входа в систему.
    Установляет учетные данные Команда входа в систему устанавливает начальные учетные данные для пользователя из пользовательской базы данных. Эти учетные данные определяют права доступа и ответственность пользователя в системе.
    Инициирует сеанс Команда входа в систему инициализирует пользовательскую среду из пользовательской базы данных, из командной строки и из файла конфигурации /etc/environment; изменяет текущий каталог на домашний каталог пользователя (обычно); и запускает начальную программу пользователя.

    Эти функции выполняются в указанном порядке; в случае сбоя последующие функции не выполняются.

    Когда пользователь входит в систему успешно, команда login делает записи в файле /etc/utmp, который отслеживает текущие входы пользователей в систему, и в файле /var/adm/wtmp, который используется для целей учета. Команда login также устанавливает переменные среды LOGIN и LOGNAME.

    Информация о каждом неудачном входе в систему записывается в файл /etc/security/failedlogin. Сохраняемая информация такая же, как и в файле /etc/utmp, за исключением того, что неузнаваемые имена пользователей регистрируются как UNKNOWN_USER. Это гарантирует, что пароль, случайно введенный, например, как имя пользователя, не будет допущен в систему в незашифрованном виде.

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

    Команда входа в систему также изменяет право собственности на порт входа в систему. Сюда входят любые порты, отмеченные как синонимы в файле /etc/security/login.cfg.

    Чтобы сохранить целостность системы, одновременно можно войти в порт только для одного сеанса. Это означает, что команда входа в систему, введенная из приглашения оболочки, не может быть успешной, так как исходный сеанс и новый сеанс входа будут на одном и том же порту. Однако команда exec login завершается успешно, потому что новая оболочка заменяет текущую. Команда входа в систему обычно является встроенной командой оболочки, заставляющей оболочку заменить себя.

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

    Чтобы войти в систему с многобайтовыми именами пользователей, необходимо сначала открыть окно на японском языке (aixterm) и инициировать новый вход в систему из окна на японском языке.

    Флаги

    -f User Идентифицирует пользователя, который уже прошел аутентификацию. Если реальный идентификатор процесса входа в систему — root (0), то пользователь не аутентифицируется.
    -h HostName Идентифицирует логин как удаленный логин и указывает с помощью переменной HostName имя машина, запрашивающая логин. Эта форма входа используется только демонами telnetd и rlogind.
    -p Сохраняет текущий тип терминала, установив для него значение переменной среды $TERM вместо типа, содержащегося в базе данных классов объектов CuAt/PdAt.

    Безопасность

    Контроль доступа: эта команда устанавливает разрешение setuid для пользователя root, предоставляет разрешение на выполнение ( x ) любому пользователю и входит в доверенную вычислительную базу.

    Примеры

    Чтобы войти в систему как пользователь jamesd , введите в строке входа следующее:

    Если задан пароль, появится запрос на ввод пароля. Введите свой пароль в этом запросе.

    Файлы

    < TD>Содержит сообщение дня. >

    Дополнительная информация

    Команда getty, команда setgroups, команда setsenv, команда su, команда tsm.

    Подпрограмма аутентификации, подпрограмма setuid.

    Подавление сообщений о входе в систему AIX версии 4.3. Руководство пользователя: Операционная система и устройства.

    Обзор входа и выхода из системы в AIX версии 4.3: Руководство пользователя системы: Операционная система и устройства.

    Обзор оболочек в AIX Version 4.3 System User's Guide: Operating System and Devices описывает, что такое оболочки, различные типы оболочек и как оболочки влияют на интерпретацию команд.

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

    Если аргумент не указан, при входе запрашивается имя пользователя.

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

    Если для пользователя указаны специальные ограничения доступа в /etc/usertty, они должны быть соблюдены, иначе попытка входа будет отклонена и будет создано сообщение системного журнала. См. раздел «Особые ограничения доступа».

    Если пользователь является пользователем root, то вход в систему должен происходить с терминала, указанного в /etc/securetty. Сбои будут регистрироваться с помощью средства системного журнала.

    После проверки этих условий будет запрошен и проверен пароль (если для данного имени пользователя требуется пароль). Допускается десять попыток, прежде чем вход в систему завершается, но после первых трех ответ начинает становиться очень медленным. Об ошибках входа сообщается через средство системного журнала. Это средство также используется для сообщения об успешных входах в систему root.

    Если файл .hushlogin существует, то выполняется "тихий" вход в систему (это отключает проверку почты и печать времени последнего входа и сообщения дня). В противном случае, если существует /var/log/lastlog, печатается время последнего входа в систему (и записывается текущий вход).

    Выполняются случайные административные действия, такие как установка UID и GID tty. Переменная среды TERM сохраняется, если она существует (другие переменные среды сохраняются, если используется опция -p). Затем устанавливаются переменные среды HOME, PATH, SHELL, TERM, MAIL и LOGNAME. PATH по умолчанию /usr/local/bin:/bin:/usr/bin для обычных пользователей и /usr/local/sbin:/usr/local/bin:/sbin: /bin:/usr/sbin:/usr/bin для root. Наконец, если это не "тихий" логин, печатается сообщение дня и проверяется файл с именем пользователя в /var/spool/mail и печатается сообщение если он имеет ненулевую длину.

    Затем запускается оболочка пользователя.Если в /etc/passwd для пользователя не указана оболочка, используется /bin/sh. Если в /etc/passwd не указан каталог, то используется / (домашний каталог проверяется на наличие описанного выше файла .hushlogin ).

    /usr/sbin/login Содержит команду входа в систему.
    /etc/utmp Содержит учетную информацию.
    /var/adm/wtmp Содержит учетную информацию.
    /etc/motd
    /etc/passwd Содержит пароли.
    $HOME/.hushlogin Подавляет сообщения о входе в систему.
    /etc/environment Содержит информацию о конфигурации среды пользователя.
    /etc/security/login.cfg Содержит синонимы портов.
    /etc/security/ lastlog Содержит информацию, относящуюся к последнему успешному и неудачному входу в систему. empts.
    /etc/security/failedlogin Содержит информацию о каждом неудачном входе в систему.
    ТегОписание
    -p Используется getty(8), чтобы указать входу в систему не разрушать среду
    -f Используется для пропуска второй аутентификации при входе в систему. В частности, это не работает для root и, по-видимому, плохо работает в Linux.
    -h Используется другими серверами (например, telnetd(8)) для передачи имени удаленного хоста при входе в систему, чтобы его можно было поместить в utmp и wtmp. Только суперпользователь может использовать эту опцию.

    В файле /etc/securetty перечислены имена tty, на которых root разрешен вход. В каждой строке должно быть указано одно имя tty без префикса /dev/. Если файл не существует, root может войти в систему на любом tty.

    В большинстве современных систем Linux используются PAM (подключаемые модули аутентификации). В системах, не использующих PAM, в файле /etc/usertty указываются дополнительные ограничения доступа для конкретных пользователей. Если этот файл не существует, никаких дополнительных ограничений доступа не накладывается. Файл состоит из последовательности разделов. Существует три возможных типа разделов: КЛАССЫ, ГРУППЫ и ПОЛЬЗОВАТЕЛИ. Раздел CLASSES определяет классы tty и шаблоны имен хостов, раздел GROUPS определяет разрешенные tty и хосты для каждой группы, а раздел USERS определяет разрешенные tty и хосты для каждого пользователя.

    Раздел КЛАССЫ

    Раздел КЛАССЫ начинается со слова КЛАССЫ в начале строки в верхнем регистре. Каждая следующая строка до начала нового раздела или конца файла состоит из последовательности слов, разделенных символами табуляции или пробелами. Каждая строка определяет класс tty и шаблоны узлов.

    Слово в начале строки определяется как собирательное имя для шаблонов tty и хоста, указанных в остальной части строки. Это коллективное имя можно использовать в любом последующем разделе GROUPS или USERS. Такое имя класса не должно встречаться как часть определения класса, чтобы избежать проблем с рекурсивными классами.

    Пример раздела КЛАССЫ:

    Это определяет классы myclass1 и myclass2 как соответствующие правые стороны.

    Раздел ГРУППЫ

    Раздел GROUPS определяет разрешенные tty и хосты для каждой группы Unix. Если пользователь является членом группы Unix в соответствии с /etc/passwd и /etc/group и такая группа упоминается в разделе ГРУППЫ в / etc/usertty, то пользователю предоставляется доступ, если группа.

    Раздел ГРУППЫ начинается со слова ГРУППЫ в верхнем регистре в начале строки, а каждая следующая строка представляет собой последовательность слов, разделенных пробелами или символами табуляции. Первое слово в строке — это имя группы, а остальные слова в строке указывают tty и хосты, к которым разрешен доступ членам этой группы. Эти спецификации могут включать использование классов, определенных в предыдущих разделах КЛАССЫ.

    Пример раздела ГРУППЫ.

    В этом примере указано, что члены группы sys могут входить в систему через tty1 и с хостов в домене bar.edu. Пользователи в группе stud могут входить в систему с хостов/tty, указанных в классе myclass1 или с tty4.

    Раздел ПОЛЬЗОВАТЕЛЕЙ

    Раздел USERS начинается со слова USERS в верхнем регистре в начале строки, а каждая следующая строка представляет собой последовательность слов, разделенных пробелами или символами табуляции. Первое слово в строке — это имя пользователя, и этому пользователю разрешено входить в систему через ttys и с хостов, указанных в остальной части строки. Эти спецификации могут включать классы, определенные в предыдущих разделах КЛАССЫ. Если в начале файла не указан заголовок раздела, первым разделом по умолчанию будет раздел USERS.

    Пример раздела USERS:

    Это позволяет пользователю zacho входить в систему только на tty1 и с хостов с IP-адресами в диапазоне 130.225.16.0 - 130.225.16.255, а пользователю blue разрешается входить в систему с tty3 и любых устройств, указанных в классе myclass2.

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

    Если и строка USERS, и строка GROUPS соответствуют пользователю, то пользователю разрешен доступ из объединения всех tty/хостов, упомянутых в этих спецификациях.

    Происхождение

    Спецификации шаблонов tty и host, используемые в спецификации классов, групп и пользовательского доступа, называются источниками.Исходная строка может иметь один из следующих форматов:
    ТегОписание< /th>
    o Имя tty-устройства без префикса /dev/, например tty1 или ttyS0.< /td>
    o Строка @localhost, означающая, что пользователю разрешен telnet/rlogin с локального хоста на тот самый хозяин. Это также позволяет пользователю, например, запустить команду: xterm -e /bin/login.
    o Суффикс доменного имени, такой как @.some.dom, означающий, что пользователь может rlogin/telnet с любого хоста, чье доменное имя имеет суффикс .some.dom.
    o Диапазон адресов IPv4, записанный как @xxxx/yyyy, где xxxx — это IP-адрес в обычном квадро-десятичном формате с точками, а yyyy — битовая маска в том же формате. указание, какие биты в адресе сравнивать с IP-адресом удаленного хоста. Например, @130.225.16.0/255.255.254.0 означает, что пользователь может rlogin/telnet с любого хоста, чей IP-адрес находится в диапазоне 130.225.16.0 - 130.225.17.255.
    Любой из вышеуказанные источники могут иметь префикс спецификации времени в соответствии с синтаксисом:

    Отсутствие указания префикса времени для tty или хоста означает, что вход с этого источника разрешен в любое время. Если вы указываете префикс времени, обязательно укажите как набор дней, так и один или несколько часов или часовых диапазонов. Спецификация времени не может содержать пробелов.

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

    Недокументированная опция BSD -r не поддерживается. Это может потребоваться некоторым программам rlogind(8).

    Рекурсивный вход в систему, который был возможен в старые добрые времена, больше не работает; для большинства целей su(1) является удовлетворительной заменой. Действительно, из соображений безопасности login выполняет системный вызов vhangup() для удаления любых возможных процессов прослушивания на tty. Это сделано для того, чтобы избежать перехвата пароля. Если кто-то использует команду «login», то окружающая оболочка будет уничтожена vhangup(), потому что она больше не является истинным владельцем tty. Этого можно избежать, используя «exec login» в оболочке верхнего уровня или xterm.

    Если аргумент не указан, при входе запрашивается имя пользователя.

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

    Если для пользователя указаны специальные ограничения доступа в /etc/usertty, они должны быть соблюдены, иначе попытка входа будет отклонена и будет создано сообщение системного журнала. См. раздел «Особые ограничения доступа».

    Если пользователь является пользователем root, то вход в систему должен происходить с терминала, указанного в /etc/securetty. Сбои будут регистрироваться с помощью средства системного журнала.

    После проверки этих условий будет запрошен и проверен пароль (если для данного имени пользователя требуется пароль). Допускается десять попыток, прежде чем вход в систему завершается, но после первых трех ответ начинает становиться очень медленным. Об ошибках входа сообщается через средство системного журнала. Это средство также используется для сообщения об успешных входах в систему root.

    Если файл ~/.hushlogin или /etc/hushlogins существует, то выполняется "тихий" вход в систему (это отключает проверку почты и печать время последнего входа и сообщение дня). В противном случае, если существует /var/log/lastlog, печатается время последнего входа в систему (и записывается текущий вход).

    Обратите внимание, что если файл /etc/hushlogins существует, то последнее сообщение о входе может быть сгенерировано PAM, например:

    требуется сеанс pam_lastlog.so noupdate showfailed

    параметр в файле /etc/pam.d/login. Библиотека PAM предоставляет более подробную информацию о неудачных попытках входа в систему.

    Выполняются случайные административные действия, такие как установка UID и GID tty. Переменная среды TERM сохраняется, если она существует (другие переменные среды сохраняются, если используется опция -p). Затем устанавливаются переменные среды HOME, PATH, SHELL, TERM, MAIL и LOGNAME. PATH по умолчанию /usr/local/bin:/bin:/usr/bin для обычных пользователей и /usr/local/sbin:/usr/local/bin:/sbin: /bin:/usr/sbin:/usr/bin для root. Наконец, если это не "тихий" вход в систему, будет напечатано сообщение дня и будет проверен файл с именем пользователя в /var/spool/mail, а также напечатано сообщение, если оно имеет ненулевую длину.

    Затем запускается оболочка пользователя. Если в /etc/passwd для пользователя не указана оболочка, используется /bin/sh. Если в /etc/passwd не указан каталог, то используется / (домашний каталог проверяется на наличие описанного выше файла .hushlogin ).

    Параметры

    Используется getty(8), чтобы указать входу в систему не разрушать среду

    Используется для пропуска повторной аутентификации при входе. В частности, это не работает для root и, по-видимому, плохо работает в Linux.

    Используется другими серверами (например, telnetd(8)) для передачи имени удаленного хоста при входе в систему, чтобы его можно было поместить в utmp и wtmp. Только суперпользователь может использовать эту опцию. Обратите внимание, что параметр -h влияет на имя службы PAM. Стандартное имя службы — «login», с опцией -h — «remote». Необходимо создать правильные файлы конфигурации PAM (например, /etc/pam.d/login и /etc/pam.d/remote).

    Особые ограничения доступа

    В файле /etc/securetty перечислены имена tty, на которых root разрешен вход. В каждой строке должно быть указано одно имя tty без префикса /dev/. Если файл не существует, root может войти в систему на любом tty.

    В большинстве современных систем Linux используются PAM (подключаемые модули аутентификации). В системах, не использующих PAM, в файле /etc/usertty указываются дополнительные ограничения доступа для конкретных пользователей. Если этот файл не существует, никаких дополнительных ограничений доступа не накладывается. Файл состоит из последовательности разделов. Существует три возможных типа разделов: КЛАССЫ, ГРУППЫ и ПОЛЬЗОВАТЕЛИ. Раздел CLASSES определяет классы tty и шаблоны имен хостов, раздел GROUPS определяет разрешенные tty и хосты для каждой группы, а раздел USERS определяет разрешенные tty и хосты для каждого пользователя.

    Раздел КЛАССОВ Раздел КЛАССОВ начинается со слова КЛАССЫ в начале строки в верхнем регистре. Каждая следующая строка до начала нового раздела или конца файла состоит из последовательности слов, разделенных символами табуляции или пробелами. Каждая строка определяет класс tty и шаблоны узлов.

    Слово в начале строки определяется как собирательное имя для шаблонов tty и хоста, указанных в остальной части строки. Это коллективное имя можно использовать в любом последующем разделе GROUPS или USERS. Такое имя класса не должно встречаться как часть определения класса, чтобы избежать проблем с рекурсивными классами.

    Пример раздела КЛАССЫ: myclass1

    Раздел GROUPS Раздел GROUPS определяет разрешенные tty и хосты для каждой группы Unix. Если пользователь является членом группы Unix в соответствии с /etc/passwd и /etc/group и такая группа упоминается в разделе ГРУППЫ в / etc/usertty, то пользователю предоставляется доступ, если группа.

    Раздел ГРУППЫ начинается со слова ГРУППЫ в верхнем регистре в начале строки, а каждая следующая строка представляет собой последовательность слов, разделенных пробелами или символами табуляции. Первое слово в строке — это имя группы, а остальные слова в строке указывают tty и хосты, к которым разрешен доступ членам этой группы. Эти спецификации могут включать использование классов, определенных в предыдущих разделах КЛАССЫ.

    Пример раздела ГРУППЫ. система

    myclass1 tty4 В этом примере указано, что члены группы sys могут входить в систему через tty1 и с хостов в домене bar.edu. Пользователи в группе stud могут входить в систему с хостов/tty, указанных в классе myclass1 или с tty4.

    Раздел USERS Раздел USERS начинается со слова USERS в верхнем регистре в начале строки, а каждая следующая строка представляет собой последовательность слов, разделенных пробелами или символами табуляции. Первое слово в строке — это имя пользователя, и этому пользователю разрешено входить в систему через ttys и с хостов, указанных в остальной части строки. Эти спецификации могут включать классы, определенные в предыдущих разделах КЛАССЫ. Если в начале файла не указан заголовок раздела, первым разделом по умолчанию будет раздел USERS.

    Пример раздела USERS: zacho

    tty3 myclass2 Это позволяет пользователю zacho входить в систему только на tty1 и с хостов с IP-адресами в диапазоне 130.225.16.0 - 130.225.16.255, а пользователю blue разрешается входить в систему с tty3 и любых устройств, указанных в классе myclass2.

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

    Если и строка USERS, и строка GROUPS соответствуют пользователю, то пользователю разрешен доступ из объединения всех tty/хостов, упомянутых в этих спецификациях.

    Источники Спецификации шаблонов tty и host, используемые в спецификации классов, групп и пользовательского доступа, называются источниками. Исходная строка может иметь один из следующих форматов: o

    Имя tty-устройства без префикса /dev/, например tty1 или ttyS0.

    Строка @localhost, означающая, что пользователю разрешено telnet/rlogin с локального хоста на тот же хост. Это также позволяет пользователю, например, запустить команду: xterm -e /bin/login.

    Суффикс доменного имени, такой как @.some.dom, означающий, что пользователь может войти в систему/telnet с любого хоста, чье доменное имя имеет суффикс .some.dom.

    Диапазон IPv4-адресов, записанный как @xxxx/yyyy, где xxxx – это IP-адрес в обычном четверно-десятичном формате с точками, а yyyy – это битовая маска в том же формате, указывающая, какие биты в адресе сравнивать с IP-адресом удаленный хост. Например, @130.225.16.0/255.255.254.0 означает, что пользователь может rlogin/telnet с любого хоста, чей IP-адрес находится в диапазоне 130.225.16.0 - 130.225.17.255.

    Отсутствие указания префикса времени для tty или хоста означает, что вход с этого источника разрешен в любое время. Если вы указываете префикс времени, обязательно укажите как набор дней, так и один или несколько часов или часовых диапазонов. Спецификация времени не может содержать пробелов.

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

    Файлы

    См. также

    Недокументированная опция BSD -r не поддерживается. Это может потребоваться некоторым программам rlogind(8).

    Рекурсивный вход в систему, который был возможен в старые добрые времена, больше не работает; для большинства целей su(1) является удовлетворительной заменой. Действительно, из соображений безопасности login выполняет системный вызов vhangup() для удаления любых возможных процессов прослушивания на tty. Это сделано для того, чтобы избежать перехвата пароля. Если кто-то использует команду «login», то окружающая оболочка будет уничтожена vhangup(), потому что она больше не является истинным владельцем tty. Этого можно избежать, используя «exec login» в оболочке верхнего уровня или xterm.

    Вероятно, вы знакомы с оболочкой в ​​Linux. Здесь вы вводите команды и выполняете программы. Но что это за оболочка входа и чем она отличается от обычной оболочки?

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

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

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

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

    процесс входа в систему в Linux

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

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

    etc passwd файл в Linux

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

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

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

    Надеюсь, информации было не слишком много.

    Оболочка входа в систему и оболочка без входа

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

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

    Изменение ширины оболочки в Linux

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

    Файлы профиля и 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.

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

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

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

    Проверка это оболочка входа

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

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

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

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