TTY Autologin: Difference between revisions
(more template usages & cat to show file content) |
(Changing tcc to gcc cause tcc is on edge while gcc on main) |
||
Line 11: | Line 11: | ||
{{tip|You can change the `tty1` or `ttyS0` to a different serial port or virtual terminal as you please. `root` can be changed to a different user as well. Finally the terminal type (`linux` and `vt100` in our examples) can be changed to a wide variety of serial terminals.}} | {{tip|You can change the `tty1` or `ttyS0` to a different serial port or virtual terminal as you please. `root` can be changed to a different user as well. Finally the terminal type (`linux` and `vt100` in our examples) can be changed to a wide variety of serial terminals.}} | ||
=By compiling your own autologin | =By compiling your own autologin wrapper= | ||
== How == | == How == | ||
Line 23: | Line 22: | ||
==== Example on how to assolve the prerequisites: ==== | ==== Example on how to assolve the prerequisites: ==== | ||
{{Cmd|# apk add | {{Cmd|# apk add gcc | ||
# apk add musl-dev}} | # apk add musl-dev}} | ||
Line 48: | Line 47: | ||
== Compiling the autologin.c program == | == Compiling the autologin.c program == | ||
If using | If using gcc: | ||
{{Cmd|# | {{Cmd|# gcc -o autologin autologin.c }} | ||
Move the binary autologin to {{path|/usr/sbin}} | Move the binary autologin to {{path|/usr/sbin}} | ||
Line 73: | Line 72: | ||
It is possible to remove the autologin.c file, the C compiler and the {{pkg|musl-dev}} package | It is possible to remove the autologin.c file, the C compiler and the {{pkg|musl-dev}} package | ||
{{Cmd|# rm autologin.c | {{Cmd|# rm autologin.c | ||
# apk del | # apk del gcc musl-dev}} | ||
== References == | == References == |
Revision as of 06:50, 15 September 2023
By using agetty
How
Install agetty:
# apk add agetty
Edit /etc/inittab to use agetty
Example for the virtual terminal tty1:
tty1::respawn:/sbin/agetty --autologin root tty1 linux
Example inittab entry for a serial terminal on ttys01:
ttyS0::respawn:/sbin/agetty --autologin root ttyS0 vt100
By compiling your own autologin wrapper
How
- Writing a wrapper, called autologin, around /bin/login and moving it in /usr/sbin/
- Editing /etc/inittab specifying the use of /usr/sbin/autologin instead of /bin/login
Prerequisites
- A C compiler
- The musl-dev package which contains the C standard library
Example on how to assolve the prerequisites:
# apk add gcc # apk add musl-dev
Writing the autologin.c program
Create a file; in this example called autologin.c
# vi autologin.c
Write into it the following C program.
Contents of autologin.c
The only thing it does is a system call to execute the login binary (part of busybox) which will be searched in $PATH.
As parameters are passed:
- -f flag which stands for "Do not authenticate (user already authenticated)"
- username in this example is root but if you created a new user, its username can be used instead.
Compiling the autologin.c program
If using gcc:
# gcc -o autologin autologin.c
Move the binary autologin to /usr/sbin
# mv autologin /usr/sbin/
Editing /etc/inittab
Open /etc/inittab
# vi /etc/inittab
replace ":respawn:/sbin/getty" with ":respawn:/sbin/getty -n -l /usr/sbin/autologin" for each TTY you want to enable autologin.
- The getty's -n flag do not prompt the user for a login name
- The getty's -l flag invokes a custom login instead of /bin/login; in our case it is set to invoke /usr/sbin/autologin
Note
To perform such a replacement on all TTYs, the following command can be used:
# sed -i 's@:respawn:/sbin/getty@:respawn:/sbin/getty -n -l /usr/sbin/autologin@g' /etc/inittab
- "@" is used as a delimiter
- The -i flag edits the file in-place
Cleaning up
It is possible to remove the autologin.c file, the C compiler and the musl-dev package
# rm autologin.c # apk del gcc musl-dev