Что такое логин и не логин?

Говорят, что настройки для оболочки без входа в файл .bashrc и настройки оболочки для входа в файл .profile.

Что на самом деле подразумевается под логином и без логина?

Пожалуйста, объясните, не используя технический жаргон, насколько возможно.

78
задан 27 June 2012 в 20:54

2 ответа

Проще говоря:

  • Если вы открываете оболочку или терминал (или переключаетесь на него), и он просит вас войти в систему (Имя пользователя? Пароль?), Прежде чем он выдаст вам приглашение, это оболочка входа в систему.
  • Если это не так (например, gnome-терминал ) и позволяет вам использовать его сразу, это оболочка, не входящая в систему.

Если вы обычный пользователь Ubuntu Desktop, оболочка входа only - это ... ваш рабочий стол (вы вводите пароль для входа, верно;)? Ну, технически это оболочка входа в систему, которая запускает графический интерфейс, но это входит в жаргон. И да, он будет читать настройки в .profile

Единственный раз, когда вы (обычный пользователь), вероятно, увидите оболочку входа, которая выглядит как оболочка входа, если у вас есть возникли проблемы с рабочим столом, и вы переключаетесь на виртуальный терминал с помощью ярлыка Ctrl + Alt + F1 .


К другим общим случаям использования оболочки входа относятся:

  • удаленный доступ к вашему компьютеру через ssh (или локальное соединение с ssh localhost)
  • имитацией начальная оболочка входа в систему с bash -l (или sh -l)
  • , имитирующая начальную оболочку входа root с sudo -i
    • или sudo -u username -i для другого не-118 пользователя
  • аутентифицируются как другой не root пользователь с su - username его пароль)
  • с помощью команды sudo login для переключения пользователь
0
ответ дан 27 June 2012 в 20:54

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в Google для запроса «что такое оболочка входа в систему», я даю более правильный ответ ниже:

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

  1. Запуск оболочки с аргументом -l или --login, предполагая, что она знает (я не знаю оболочек, которые не знают -l, но --login поддерживается только несколькими оболочками).
  2. Запуск оболочки с argv[0], установленным на -{some_string} (то есть с HYPHEN-MINUS, предварительно добавленным к обычному argv[0] или к какой-либо другой строке). Это то, что делают ssh и su: su просто запускает исполняемый файл с -su как argv[0] (привет всем, кто думает, что argv[0] как-то связан с текущим именем исполняемого файла), ssh запускает zsh с -zsh, когда пользователь установил /bin/zsh как его оболочка.

Логичность оболочки не имеет абсолютно никакого отношения к тому, кто спрашивает у вас пароль или выполняет какую-либо другую процедуру аутентификации. Некоторые программы, такие как ssh или login (или некоторые эмуляторы терминала, такие как urxvt), запускают оболочки как входные, используя argv[0], который начинается с HYPHEN-MINUS. Некоторые, такие как su или sudo (или zsh: см. Модификатор предварительной команды -, описанный в разделе «Модификаторы PRECOMMAND» в man zshmisc), по умолчанию этого не делают, но об этом можно сказать. У некоторых есть единственная возможность указать shell как логин, используя его аргумент (т.е. bash -l): ssh с аргументом команды (который явно указывает ssh, что запускать на удаленном конце).

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

0
ответ дан 27 June 2012 в 20:54

Другие вопросы по тегам:

Похожие вопросы: