Процесс Login
В текстовой консоли имеется программа getty, ожидающая вход в систему
пользователя. Она пишет 'login:' и другие сообщения. Работает в окружении
init. Когда пользователь входит в систему, getty вызывает программу
'login'. Эта программа устанавливает пользовательское окружение и вызывает
оболочку.
Программа Login устанавливает пути, определенные в /usr/include/paths.h.
'Пути login' различны для root и других пользователей.
для обычных пользователей (_PATH_DEFPATH):
/usr/local/bin:/usr/bin:/bin:. |
для root (_PATH_DEFPATH_ROOT):
/sbin:/bin:/usr/sbin:/usr/bin |
Пути обычных пользователей не содержат пути, содержащие любые sbin каталоги.
Однако, они содержат текущий каталог, '.', который считается опасным для
пользователя root. Даже /usr/local/bin не указан для root.
Пути Login часто переписываются скриптом инициализации оболочки. Однако, возможно
использовать другие программы, записанные в /etc/passwd как оболочки
пользователя. Например, я использовал следующую строку, чтобы запускался PPP,
когда я вхожу в систему, используя специальное имя пользователя. В этом
случае, pppd имеет точный путь входа в систему.
etu-ppp:viYabVlxPwzDl:1000:1000:Esa Turtiainen, PPP:/:/usr/sbin/pppd |