Большинство сетевых серверов не должно вызвать подпроцессы любого вида. Из соображений безопасности их путь должен быть минимален.
Важное исключение - все сервисы, которые позволяют подключаться к системе
через сеть. Этот раздел описывает окружение в этих случаях. Если команда
выполняется на удаленной машине с помощью rsh, она получает другой path,
чем тот, если команда выполнена с помощью ssh. Подобно, вход в систему с
помощью rlogin, Telnet или ssh различны.
inetd
Большинство сетевых сервисов не имеют собственного процесса для постоянного
ожидания запросов. Эта работа поручается супер-серверу интернет, называемому
inetd. Inetd слушает все определенные сетевые порты и запускает
соответствующий сервер, когда имеется входящий запрос. Этот режим определен
в /etc/inetd.conf.
inetd стартует из скрипта при запуске системы. Он наследует пути процесса
init. Он не изменяет их, и все серверы стартующие от inetd имеют пути
процесса init. Пример такого сервера imapd, сервер почтового протокола
IMAP.
Другие примеры процессы inetd - telnetd, rlogind, talkd, ftp, popd, многие http серверы и т.д.
Часто использование inetd еще усложняется, при использовании отдельной программы
tcpd для запуска конкретного сервера. Это программа делает
дополнительную проверку безопасности до запуска конкретного приложения. Она
не изменяет пути (не проверено).
rsh
Демон rsh устанавливает пути из определения _PATH_DEFPATH
(/usr/include/paths.h), этот же путь использует программа login для нормальных
пользователей. Root получит тот же путь, что и нормальный пользователь.
Фактически, rshd выполняет команду, полученную из командной строки:
shell -c command-line
и shell, это не login-shell. Желательно, чтобы все оболочки, упомянутые в
/etc/passwd, поддерживали опцию -c.
rlogin
Rlogin вызывается при входе в систему, чтобы запустить реальную процедуру
входа в систему. Если вы входите с помощью rlogin, то получаете те же самые
пути, что и при обычном входе в систему. Большинство других способов войти
на Linux компьютер не использует login. Обратите внимание на разность с
rsh.
Команда login фактически использует
login -p -h host-name user-name
-p сохраняет среду окружения, кроме переменных HOME, PATH, SHELL, TERM,
MAIL и LOGNAME. -h сообщает удаленному хосту имя для регистрации.
telnet
Telnet является че- то подобным rlogin. Использует программу login и командную строку.
ssh
ssh имеет собственную установку путей. Он добавляет каталог, где находится
ssh. Часто это означает, что /usr/bin находится в пути дважды:
/usr/local/bin:/usr/bin:/bin:.:/usr/bin
Путь не содержит /usr/X11/bin, и оболочка, вызванная командой ssh - не
оболочка входа в систему. Таким образом,
ssh remotehost xterm
не работает, и что-либо в /etc/profile или в /etc/csh.cshrc может заменить
это. Вы должны всегда использовать явный путь /usr/bin/X11/xterm.
ssh ищет переменные окружения в форме VAR=VALUE в файле /etc/environment. К
сожалению, это вызывает некоторые проблемы с XFree86.
Знаете ли Вы, что такое "Большой Взрыв"? Согласно рупору релятивистской идеологии Википедии "Большой взрыв (англ. Big Bang) - это космологическая модель, описывающая раннее развитие Вселенной, а именно - начало расширения Вселенной, перед которым Вселенная находилась в сингулярном состоянии. Обычно сейчас автоматически сочетают теорию Большого взрыва и модель горячей Вселенной, но эти концепции независимы и исторически существовало также представление о холодной начальной Вселенной вблизи Большого взрыва. Именно сочетание теории Большого взрыва с теорией горячей Вселенной, подкрепляемое существованием реликтового излучения..." В этой тираде количество нонсенсов (бессмыслиц) больше, чем количество предложений, иначе просто трудно запутать сознание обывателя до такой степени, чтобы он поверил в эту ахинею. На самом деле взорваться что-либо может только в уже имеющемся пространстве. Без этого никакого взрыва в принципе быть не может, так как "взрыв" - понятие, применимое только внутри уже имеющегося пространства. А раз так, то есть, если пространство вселенной уже было до БВ, то БВ не может быть началом Вселенной в принципе. Это во-первых. Во-вторых, Вселенная - это не обычный конечный объект с границами, это сама бесконечность во времени и пространстве. У нее нет начала и конца, а также пространственных границ уже по ее определению: она есть всё (потому и называется Вселенной). В третьих, фраза "представление о холодной начальной Вселенной вблизи Большого взрыва" тоже есть сплошной нонсенс. Что могло быть "вблизи Большого взрыва", если самой Вселенной там еще не было? Подробнее читайте в FAQ по эфирной физике.