Что такое блокировки для входа и без входа?

66

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

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

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

    
задан DUKE 25.06.2012 в 19:00
источник

2 ответа

73

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

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

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

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

Другие общие случаи наличия оболочки для входа включают:

  • доступ к вашему компьютеру удаленно через ssh (или подключение локально с ssh localhost )
  • имитация начальной оболочки входа с bash -l (или sh -l )
  • , имитирующий исходный root логин с sudo -i
    • или sudo -u username -i для другого пользователя% root
  • аутентификация в качестве еще одного пользователя% %__ %_%% с паролем root их )
  • с помощью команды su - username для переключения пользователя
ответ дан ish 26.06.2012 в 04:28
источник
7

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

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

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

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

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

    
ответ дан ZyX 17.01.2015 в 21:33