---
name: "telnetlogin"
section: "8"
platform: "linux"
package: "telnetd-ssl"
version: "0.17.41+really0.17-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/telnetlogin"
---

# telnetlogin(8)

login wrapper for telnetd

## NAME

**telnetlogin** – login wrapper for telnetd

## SYNOPSIS

**telnetlogin** \[**-h** *host*\] \[**-p**\] \[**-f** *username*\] \[*username*\]

## DESCRIPTION

**telnetlogin** is a setuid wrapper that runs [login(1)](/login/1.md). It is meant to be invoked by [telnetd(8)](/telnetd/8.md); the idea is to remove the necessity of running telnetd as root.

**telnetlogin** should be installed mode 4750, user root, group telnetd. Then, telnetd may be run from */etc/inetd.conf* as user \`\`nobody'', group \`\`telnetd'', and with the option **-L** *path-to-telnetlogin*.

**telnetlogin** accepts only the subset of options to [login(1)](/login/1.md) shown above, in the order listed. This is the order  [telnetd(8)](/telnetd/8.md) normally provides them in. **telnetlogin** also does sanity checks on the environment variables TERM, and REMOTEHOST. It also insists that the standard input, output, and error streams are open on a terminal, and that it is the process group leader of the foreground process of that terminal. After checking all of these conditions, checking the values of the above environment variables for reasonable values, resetting signal handlers, and so forth, it execs login.

## SEE ALSO

[login(1)](/login/1.md), [inetd.conf(5)](/inetd.conf/5.md), [inetd(8)](/inetd/8.md), [telnetd(8)](/telnetd/8.md)

## RESTRICTIONS

THIS IS PRESENTLY EXPERIMENTAL CODE; USE WITH CAUTION.

## HISTORY

**telnetlogin** was written during the development of NetKit 0.17.
