Узнать, под каким пользователем вы вошли, можно с помощью команды id. /etc/profile (как и .profile) читается только для login shell (отличительный признак: argv[0][0] == '-'). Подозреваю, что когда вы явно передаете loginpath через ключик -l
, то telnetd, конструируя argv для execvp(), не ставит в начале минус. Думаю, причина в этом.
А чем вас не устраивает дефолтное поведение telnetd, без параметров? (В этом случае должен запускаться стандартный /bin/login, который спавнит логин шелл корректно.)