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

Wubi позволит вам установить Ubuntu при сохранении Windows. Если в любое время вы решите, что ему не нравится Ubuntu, вы можете удалить его, как обычную программу, и он вернет ему пространство. Если вы выполняете какую-либо другую установку, удаление будет намного сложнее. Вам нужно будет использовать инструмент управления дисками и удалить раздел, а затем расширить раздел Windows. Чтобы получить Wubi, вы можете загрузить его по адресу http://wubi-installer.org/ или загрузить текущую версию Ubuntu, а затем использовать 7-Zip для извлечения ISO и затем щелкнуть по wubi.exe. Должен появиться установщик, и он может следовать инструкциям оттуда. Это очень просто даже для самых нетехнических пользователей.

66
задан 27 June 2012 в 21:54

19 ответов

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

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

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

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


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

  • удаленный доступ к вашему компьютеру через ssh (или локальное подключение с помощью ssh localhost)
  • , имитирующее начальную оболочку входа с помощью bash -l (или sh -l)
  • моделирование начальной оболочки входа root с помощью sudo -i или sudo -u username -i для другого не-root пользователя
  • , аутентифицирующегося как другого не-f10] пользователя с помощью su - username их пароль)
  • с помощью команды sudo login для переключения пользователя
70
ответ дан 25 July 2018 в 18:19

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

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

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

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


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

  • удаленный доступ к вашему компьютеру через ssh (или локальное подключение с помощью ssh localhost)
  • , имитирующее начальную оболочку входа с помощью bash -l (или sh -l)
  • моделирование начальной оболочки входа root с помощью sudo -i или sudo -u username -i для другого не-root пользователя
  • , аутентифицирующегося как другого не-f10] пользователя с помощью su - username их пароль)
  • с помощью команды sudo login для переключения пользователя
70
ответ дан 31 July 2018 в 10:28

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

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

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

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


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

  • удаленный доступ к вашему компьютеру через ssh (или локальное подключение с помощью ssh localhost)
  • , имитирующее начальную оболочку входа с помощью bash -l (или sh -l)
  • моделирование начальной оболочки входа root с помощью sudo -i или sudo -u username -i для другого не-root пользователя
  • , аутентифицирующегося как другого не-f10] пользователя с помощью su - username их пароль)
  • с помощью команды sudo login для переключения пользователя
70
ответ дан 31 July 2018 в 11:29

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

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

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

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


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

  • удаленный доступ к вашему компьютеру через ssh (или локальное подключение с помощью ssh localhost)
  • , имитирующее начальную оболочку входа с помощью bash -l (или sh -l)
  • моделирование начальной оболочки входа root с помощью sudo -i или sudo -u username -i для другого не-root пользователя
  • , аутентифицирующегося как другого не-f10] пользователя с помощью su - username их пароль)
  • с помощью команды sudo login для переключения пользователя
70
ответ дан 2 August 2018 в 00:32

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

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

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

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


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

  • удаленный доступ к вашему компьютеру через ssh (или локальное подключение с помощью ssh localhost)
  • , имитирующее начальную оболочку входа с помощью bash -l (или sh -l)
  • моделирование начальной оболочки входа root с помощью sudo -i или sudo -u username -i для другого не-root пользователя
  • , аутентифицирующегося как другого не-f10] пользователя с помощью su - username их пароль)
  • с помощью команды sudo login для переключения пользователя
70
ответ дан 4 August 2018 в 16:01

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

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

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

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


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

  • удаленный доступ к вашему компьютеру через ssh (или локальное подключение с помощью ssh localhost)
  • , имитирующее начальную оболочку входа с помощью bash -l (или sh -l)
  • моделирование начальной оболочки входа root с помощью sudo -i или sudo -u username -i для другого не-root пользователя
  • , аутентифицирующегося как другого не-f10] пользователя с помощью su - username их пароль)
  • с помощью команды sudo login для переключения пользователя
70
ответ дан 6 August 2018 в 00:39

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

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

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

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


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

  • удаленный доступ к вашему компьютеру через ssh (или локальное подключение с помощью ssh localhost)
  • , имитирующее начальную оболочку входа с помощью bash -l (или sh -l)
  • моделирование начальной оболочки входа root с помощью sudo -i или sudo -u username -i для другого не-root пользователя
  • , аутентифицирующегося как другого не-f10] пользователя с помощью su - username их пароль)
  • с помощью команды sudo login для переключения пользователя
70
ответ дан 7 August 2018 в 18:05

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

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

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

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


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

  • удаленный доступ к вашему компьютеру через ssh (или локальное подключение с помощью ssh localhost)
  • , имитирующее начальную оболочку входа с помощью bash -l (или sh -l)
  • моделирование начальной оболочки входа root с помощью sudo -i или sudo -u username -i для другого не-root пользователя
  • , аутентифицирующегося как другого не-f10] пользователя с помощью su - username их пароль)
  • с помощью команды sudo login для переключения пользователя
70
ответ дан 10 August 2018 в 06:52

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

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

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

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


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

  • удаленный доступ к вашему компьютеру через ssh (или локальное подключение с помощью ssh localhost)
  • , имитирующее начальную оболочку входа с помощью bash -l (или sh -l)
  • моделирование начальной оболочки входа root с помощью sudo -i или sudo -u username -i для другого не-root пользователя
  • , аутентифицирующегося как другого не-f10] пользователя с помощью su - username их пароль)
  • с помощью команды sudo login для переключения пользователя
71
ответ дан 15 August 2018 в 18:49
  • 1
    Если я запускаю свою Eclipse IDE из терминала, она открывается, как и ожидалось, но если я пытаюсь открыть ее, щелкая значок Eclipse, она не может распознать местоположение Java (если в файле .profile не задан PATH для Java). Это означает, что для щелчка по значку Eclipse требуется оболочка входа, почему? – DUKE 26 June 2012 в 17:45
  • 2
    @DUKE, Нет, это означает, что переменные среды должны быть установлены по-разному , когда вы используете десктоп / графический интерфейс пользователя, а не настоящую консольную систему только для командной строки. Поместите свой PATH и т. Д. В ~/.pam_environment (только переменные, никаких команд bash!), Выйдите из системы, войдите в систему и наблюдайте, как все волшебным образом появляется на рабочем столе и в gnome-терминале! – ish 26 June 2012 в 17:49
  • 3
    самое ясное объяснение, которое я нашел. Спасибо – chanHXC 8 September 2013 в 09:15
  • 4
    Вход через ssh не вызывает оболочку входа. Он не загружает /etc/profile, /etc/profile.d или ~/.profile. – xuhdev 19 July 2014 в 05:17
  • 5
    Смотрите этот вопрос . – xuhdev 19 July 2014 в 05:29

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

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

Запуск оболочки с аргументом -l или --login при условии, что он ее знает (я не знаю никаких оболочек, которые не знают , но --login поддерживается только несколькими оболочками). Запуск оболочки с 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 -, описанный в разделе PRECOMMAND MODIFIERS в man zshmisc), не делают этого по умолчанию, но могут быть рассказаны так. У некоторых есть единственная возможность сообщить оболочке логин, используя свой аргумент (например, bash -l): ssh с аргументом команды (который явно сообщает ssh, что нужно запускать на удаленном конце).

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

7
ответ дан 25 May 2018 в 09:42
  • 1
    Меня интересует второй вариант: как я могу изменить argv [0] до (или после) вызова bash? Можно ли это сделать из командной строки? – VeryHardCoder 23 March 2016 в 14:44
  • 2
    @VeryHardCoder Это зависит от приложения, которое вы используете для запуска команды. В коде C это делается путем непосредственной подачи argv[0] на одну из функций exec*, естественную и неизбежную: вы всегда подаете как argv[0], так и путь к команде фактически выполняются при использовании функций exec*, даже если вы никогда не хотите argv[0] отличаться от запуска команды. Другие языки предоставляют свои собственные способы. В частности, bash позволяет использовать exec -a new_argv0 bash, но это, конечно же, заменит текущую рабочую оболочку тем, что вы exec ed, поэтому вам может понадобиться использовать подоболочку ((exec -a -zsh zsh)), – ZyX 23 March 2016 в 22:47
  • 3
    Хорошо понял! На самом деле это можно сделать даже проще: (exec -l bash) ... – VeryHardCoder 24 March 2016 в 19:08
  • 4
    Какова функциональная разница между ними? Это просто логический флаг? – Alexey 9 October 2016 в 16:00
  • 5
    @Alexey Main function difference - это набор файлов конфигурации, используемых при запуске. $0, и, возможно, еще что-то другое (переменная, настройка и т. д.) установлено так, что логичность оболочки может быть обнаружена в файле конфигурации, но кто на самом деле обнаруживает это, так что это будет иметь какое-то значение? Это все, что я знаю. – ZyX 9 October 2016 в 23:07

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в 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. ).

7
ответ дан 25 July 2018 в 18:19

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в 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. ).

7
ответ дан 31 July 2018 в 10:28

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в 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. ).

7
ответ дан 31 July 2018 в 11:29

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в 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. ).

7
ответ дан 2 August 2018 в 00:32

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в 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. ).

7
ответ дан 4 August 2018 в 16:01

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в 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. ).

7
ответ дан 6 August 2018 в 00:39

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в 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. ).

7
ответ дан 7 August 2018 в 18:05

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в 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. ).

7
ответ дан 10 August 2018 в 06:52

Я не думаю, что правильный ответ может быть дан без «технического жаргона». Так как этот вопрос является первым, который появляется в 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. ).

7
ответ дан 15 August 2018 в 18:49
  • 1
    Меня интересует второй вариант: как я могу изменить argv [0] до (или после) вызова bash? Это можно сделать из командной строки? – VeryHardCoder 23 March 2016 в 14:44
  • 2
    @VeryHardCoder Это зависит от приложения, которое вы используете для запуска команды. В коде C это делается путем непосредственного предоставления argv[0] одной из функций exec*, естественных и неизбежных: вы всегда предоставляете оба argv[0] и путь к команде фактически выполняется при использовании функций exec*, даже если вы не хотите, чтобы argv[0] отличался от запуска команды. Другие языки предоставляют свои собственные способы. В частности, bash позволяет использовать exec -a new_argv0 bash, но это, конечно, заменит текущую оболочку на то, что вы exec редактировали, поэтому вам может понадобиться использовать subshell ((exec -a -zsh zsh)) – ZyX 23 March 2016 в 22:47
  • 3
    Хорошо понял! На самом деле это можно сделать даже проще: (exec -l bash) ... – VeryHardCoder 24 March 2016 в 19:08
  • 4
    Какая функциональная разница между ними? Это просто логический флаг? – Alexey 9 October 2016 в 16:00
  • 5
    @Alexey Основное функциональное отличие - это набор файлов конфигурации, используемых при запуске. $0, и, может быть, что-то еще (переменная, настройка и т. д.) установлено так, что логичность оболочки может быть обнаружена в файле конфигурации, но кто на самом деле беспокоит обнаружение этого, так что это будет иметь какое-то значение? Это все, что я знаю. – ZyX 9 October 2016 в 23:07

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

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