Последовательность сценариев получена после входа в систему

Я хотел бы сконцентрировать всю свою конфигурацию входа в систему в моем ~/.bash_profile. Был a ~/.bashrc там по умолчанию, но я заменил его a ~/.bash_profile.

Однако, когда я вхожу в систему, что-то перед моим ~/.bash_profile получен и отображает следующее:

Linux ubnt10-dev1 2.6.32-38-server #83-Ubuntu SMP Wed Jan 4 11:26:59 UTC 2012 x86_64 GNU/Linux
Ubuntu 10.04.4 LTS

Welcome to the Ubuntu Server!
 * Documentation:  http://www.ubuntu.com/server/doc

  System information as of Fri May  9 12:17:39 EDT 2014

  System load:  0.01              Processes:           74
  Usage of /:   5.5% of 18.58GB   Users logged in:     0
  Memory usage: 4%                IP address for eth0: 123.x.x.x
  Swap usage:   0%

  Graph this data and manage this system at https://landscape.canonical.com/

New release 'precise' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Fri May  9 12:11:52 2014 from 123.x.x.x

Я хотел бы удалить это так, чтобы только мое собственное приветствие всплеска определило в моем ~/.bash_profile получает дисплеи, но я не уверен в логике/последовательности сценариев, получил/выполнил, когда пользователь входит в систему. Можно ли просветить меня?

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

41
задан 10 May 2014 в 01:01

2 ответа

Это - вид комплекса. В первую очередь, детали зависят от того, какую оболочку Вы выполняете. Незаконно заимствовать меня:

  • Когда Вы открываете эмулятор терминала (gnome-terminal например), Вы выполняете то, что известно как интерактивная, оболочка невхода в систему.

  • Когда Вы входите в свою машину из командной строки или выполняете команду такой как su - username, Вы выполняете интерактивную оболочку входа в систему.

  • Когда Вы входите в систему графически, Вы выполняете что-то совершенно другое. Детали будут зависеть от Вашей системы и графической среды, но в целом, это - графическая оболочка, которая имеет дело с Вашим входом в систему. В то время как много графических оболочек (включая значение по умолчанию Ubuntu) будут читать /etc/profile и ~/.profile не все они делают.

  • Наконец при выполнении сценария оболочки он выполняется в неинтерактивной, оболочке невхода в систему.

Файлы, которые считает удар при запуске зависят от типа оболочки, которую он выполняет как. Следующее является выборкой раздела INVOCATION man bash (шахта акцента):

Когда удар вызывается как интерактивная оболочка входа в систему, или как неинтерактивная оболочка с - опция входа в систему, он сначала читает и выполняет команды из файла/etc/profile, если тот файл существует. После чтения того файла это ищет ~/.bash_profile, ~/.bash_login и ~/.profile, в том порядке, и читает и выполняет команды от первой, которая существует и читаема. - noprofile опция может использоваться, когда оболочка запускается для запрещения этого поведения.

Когда интерактивная оболочка, которая не является оболочкой входа в систему, запускается, удар читает и выполняет команды от/etc/bash.bashrc и ~/.bashrc, если эти файлы существуют. Это может быть запрещено при помощи - norc опция. - rcfile опция файла вынудит удар считать и выполнить команды из файла вместо/etc/bash.bashrc и ~/.bashrc.

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

Теперь, приветствие Вас видит, что-то еще снова. Это установлено в /etc/motd и отображен через pam_motd. Как объяснено в man motd:

Содержание/etc/motd отображено pam_motd (8) после успешного входа в систему, но непосредственно перед тем, как он выполняет оболочку входа в систему.

Сокращение "motd" обозначает "сообщение дня", и этот файл традиционно использовался для точно, что (требуется намного меньше дискового пространства, чем почта всем пользователям).

На GNU/Linux Debian также отображено содержание/run/motd.dynamic. Этот файл сгенерирован/etc/init.d/motd при начальной загрузке.

Для удаления сообщения просто пустеют /etc/motd файл и удостоверяется, что ничто не сгенерировано /etc/init.d/motd если существующий.


Так или иначе на основе вывода Вы показываете, Вы, кажется, регистрируетесь на пути ssh что означает, что Вы выполняете интерактивную оболочку входа в систему, видите выше для того, что это означает. Так, таким образом, вещи, о которых Вы заботитесь, о котором получены, когда Вы входите в систему, (и в этом порядке):

  1. Демон SSH, через pam_motd модуль библиотеки PAM, отображает содержание /etc/motd. Через pam_env модуль, это устанавливает переменные среды от /etc/environment и ~/.pam_environment.
  2. Оболочка входа в систему запускается, и следующие файлы читаются в порядке:
    1. /etc/profile
    2. /etc/bash.bashrc (Ubuntu по умолчанию /etc/profile источники /etc/bash.bashrc).
    3. ~/.bash_profile. Другие файлы, которые, возможно, были считаны здесь (~/.profile и ~/.bash_login) проигнорированы потому что ~/.bash_profile существует.
53
ответ дан 16 November 2019 в 10:39

Информация, которую Вы видите, когда Вы входите в систему через ssh, создается, прежде чем на/etc/profile когда-либо даже смотрят. Смотрите на последовательность файлов в/etc/update-motd.d. Это покажет Вам, где сообщения, которые Вы видите, сгенерированы различными сценариями.

1
ответ дан 16 November 2019 в 10:39

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

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