Home Download FAQ / Knowledge Base Screenshots Documentation Support

How do I get Citadel to answer telnet connections directly, without first requiring users to enter a username on the host system?

When the telnet service is enabled on your Linux system, users who connect will generally be presented with a login: prompt requesting the name of a user on the host system. This is confusing, and often unnecessary since shell users are probably using ssh to log in. So ideally you want your telnet service to connect directly to the Citadel text client.

To achieve this effect, you must configure your telnetd to run the Citadel client instead of /bin/login.

Note: In all of the below examples, your telnet server is /usr/sbin/in.telnetd -- but on some systems it might be /usr/sbin/telnetd instead. Check to see which one you have and adjust these configurations accordingly.

If you are running systemd

On a modern Linux system with systemd you don't need to have the inet superserver anymore. If you were running inetd or xinetd only for telnet, you can disable it.

Create a file /etc/systemd/system/telnet.socket with the following contents:

[Unit]
Description=Telnet Server

[Socket]
ListenStream=23
Accept=yes

[Install]
WantedBy=sockets.target

Then create a file /etc/systemd/system/telnet@.service (the @ is not a typo) containing:

[Unit]
Description=Telnet Server

[Service]
ExecStart=/usr/sbin/telnetd -h -E /usr/local/citadel/citadel
StandardInput=socket

Then enter these commands:

systemctl daemon-reload
systemctl enable telnet.socket
systemctl enable telnet.service
systemctl start telnet.socket
systemctl start telnet.service

If you are running inetd

If your system is running inetd, edit /etc/inetd.conf and search for the telnet lines. Uncomment them if they are commented out. Change them to look like this:

telnet stream tcp4 nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd -h -L /usr/local/citadel/citadel
telnet stream tcp6 nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd -h -L /usr/local/citadel/citadel

If you are running xinetd

If your system is running xinetd, the configuration will be found in /etc/xinetd.d/telnet.

There are no social media links here. Enjoy a friendly Citadel community instead. Or go outside.