Вход в систему

В текстовой консоли, программа getty ждет входа пользователя в систему. Она выводит на консоль 'login:' и другие сообщения. Она работает с окружением init. Когда getty пропускает пользователя в систему, она запускает программу 'login', которая устанавливает пользовательское окружение и запускает shell.

Программа login устанавливает путь, как описано в /usr/include/paths.h. Причем его значение различно для root и обыкновенных пользователей.

для обычных пользователей (_PATH_DEFPATH):
/usr/local/bin:/usr/bin:/bin:.
для root (_PATH_DEFPATH_ROOT):
/sbin:/bin:/usr/sbin:/usr/bin

Переменная path обычных пользователей не содержит директорий sbin. В тоже время она содержит текущую директорию, '.', что считается опасным для пользователя root. Также path для root не содержит /usr/local/bin.

Значение path установленное login, часто переписывается при инициализации shell. В тоже время возможно указывать другие программы в /etc/passwd в качестве командных интерпретаторов пользователя. Например, я использовал следующую строку, чтобы запускать PPP, когда я вхожу под определенным именем пользователя. В данном случае, pppd наследует путь login.

etu-ppp:viYabVlxPwzDl:1000:1000:Esa Turtiainen, PPP:/:/usr/sbin/pppd