Как устанавливается путь unix при первом запуске компьютера?

[119364] Спецификация протокола [119797] не устанавливает никаких явных ограничений.

Представляю, что ограничения действительно существуют, как в сервере, так и в клиенте, и оба зависят от реализации, а не от какого-либо стандарта, и для их проверки потребуется тестирование.

5.4. Banner Message

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

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

По умолчанию на экране клиента отображается 'сообщение'. Однако, поскольку 'сообщение' скорее всего будет отправляться при каждом входе в систему. попытка, и так как некоторые клиентские программы должны будут открыть отдельный в окне этого предупреждения клиентская программа может разрешить пользователю явным образом отключает отображение баннеров с сервера. Сообщение" может состоять из нескольких строк, с указанием разрывов строк. парами CRLF. Если отображается строка 'сообщения', то происходит фильтрация управляющих символов, обсуждаемый в [SSH-ARCH], ДОЛЖЕН быть использован для избежания атак, посылая Символы управления терминала.

1
02.10.2015, 00:47
4 ответа

login (1) традиционно устанавливает PATH перед передачей команд оболочке, хотя вам, возможно, придется подумать по-другому в OS X, так как есть также ~ / .MacOSX / environment .plist , где это можно установить (вероятно, не рекомендуется использовать, если это не требуется для какого-то специального приложения), и в последний раз, когда я проверял, Apple добавляла команду path_helper (8) для muss с ] PATH в глобальной оболочке rc файлы в папке / etc .

Для ZSH в Mac OS X я отключил path_helper и вручную установил ПУТЬ только в моем ~ / .zshenv файле . Это может быть не идеально, если вам действительно нужно что-то по пути, заданному в path_helper .

2
27.01.2020, 23:27

Ссылка, которую разместил @corleone, показывает, как интерпретируется переменная окружения $PATH.

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

В отличие от многих операционных систем, OS X не включает автоматически .profile или .bashrc в домашние каталоги пользователей, вместо этого по умолчанию используется .bash_profile, который будет оценен последним, если вы создадите .profile или .bashrc (который также будет оценен).

Если вы хотите обновить $PATH, чтобы включить в него определенные каталоги, лучше всего поместить его (в OS X) в .bash_profile, который будет иметь приоритет над любыми другими местами, где задана эта переменная. Если вы не хотите ничего перезаписывать, а просто хотите что-то добавить, в .bash_profile можно включить строку следующего содержания:

PATH="$PATH:/path/to/another/bin"
1
27.01.2020, 23:27

При запуске оболочки / etc / profile запускает / usr / libexec / path_helper , и вывод этой команды - eval ed для установки начального значение пути. См. man path_helper , чтобы узнать, как эта программа получает начальный список каталогов для вывода.

0
27.01.2020, 23:27

loginwindow.app отвечает за настройку начальная среда для пользователя. Окно входа в систему .app завершает процесс аутентификации, и когда пользователь аутентифицируется, среда настраивается так, как если бы вызывается login -pf ИМЯ ПОЛЬЗОВАТЕЛЯ (прочтите man login и man environment ). На этом этапе ПУТЬ: / usr / bin: / bin: / usr / sbin: / sbin то же самое, что и user.cs_path = / usr / bin: / bin: / usr / sbin: / sbin установлен в ядре. Я должен упомянуть, что все это запускается root, и если вы используете сеанс GUI, оболочки нет.

По умолчанию Terminal.app запускает вашу оболочку как оболочку входа в систему. login -pf ИМЯ ПОЛЬЗОВАТЕЛЯ запускается (от имени пользователя root), а затем читаются rc-файлы оболочки. Для bash и ksh читается / private / etc / profile. Для zsh , / private / etc / zshenv читается. Для csh , /private/etc/csh.login читается. Все используют / usr / libexec / path_helper для изменения ПУТЬ, установленного loginwindow.app`.

0
27.01.2020, 23:27

Теги

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