2

We use card with embedded Linux: 4.1.22-ltsi , "Debian GNU/Linux 9 (stretch)".

On Uart console, after boot process, it automatically does login and shows prompt

root@linaro-developer:
root@linaro-developer: who am i
root ttyS0 2016-11-03 17:16

Problem:

How to change Linux configuration to disable such auto login to allow secure connection to the card?

Please see below /etc/inittab file

# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
#
# Note: BusyBox init doesn't support runlevels.  The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use
# sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id        == tty to run on, or empty for /dev/console
# runlevels == ignored
# action    == one of sysinit, respawn, askfirst, wait, and once
# process   == program to run

Startup the system

null::sysinit:/bin/mount -t proc proc /proc null::sysinit:/bin/mount -o remount,rw / null::sysinit:/bin/mkdir -p /dev/pts null::sysinit:/bin/mkdir -p /dev/shm null::sysinit:/bin/mount -a null::sysinit:/bin/hostname -F /etc/hostname

now run any rc scripts

::sysinit:/etc/init.d/rcS

Do not ask for a password at boot

console::respawn:-/bin/sh

Put a getty on the serial port

console::respawn:/sbin/getty -L console 115200 vt100 # GENERIC_SERIAL

Stuff to do for the 3-finger salute

::ctrlaltdel:/sbin/reboot

Stuff to do before rebooting

::shutdown:/etc/init.d/rcK ::shutdown:/sbin/swapoff -a ::shutdown:/bin/umount -a -r

Edited after @MC68020 post.

According to @MC68020 recommendation I did changes as below, but no result!

Instead of

# Do not ask for a password at boot
console::respawn:-/bin/sh
# Put a getty on the serial port
# console::respawn:/sbin/getty -L  console 115200 vt100 # GENERIC_SERIAL

I set

# Do not ask for a password at boot
# console::respawn:-/bin/sh
# Put a getty on the serial port
console::respawn:/sbin/getty -L  console 115200 vt100
Yakov
  • 21
  • What do you mean by »embedded card«? Please share your kernel parameters. – Philippos Mar 30 '22 at 12:53
  • »embedded card« - I edit my post (by the way, thanks for good edit). Regarding of "kernel parameters" - what you mean? I not so good in Kernel, please give me a command to run. – Yakov Mar 31 '22 at 05:17
  • BTW which init system are your running ? openrc ? systemd ? busybox ? I had assumed openrc but wrongly as it apprears. – MC68020 Apr 10 '22 at 15:24
  • I'm not so Linux specialist. Based on Detect Init I run lsof -a -p 1 -d txt that output is /lib/systemd/systemd. – Yakov Apr 12 '22 at 13:13

1 Answers1

2

The /etc/inittab file describes which and how processes are started at bootup and during normal operation. The process launched by init in order to manage terminals is getty which, in turn, will launch the /bin/login process according to the parameters given to the command.

Have a look into your /etc/inittab, you will probably read something like :

s0:12345:respawn:/sbin/agetty -a root -L 115200 ttyS0 vt100

Notice the -a option which enables the autologin you do not wish on your ttyS0. So just remove it (together with the following user name.)


Edit after more info regarding OP's inittab :

You understand that the line console::respawn:-/bin/sh instructs init to bypass getty and directly fork the shell on the console. So… simply remove it or comment it out.
And instead remove the comment sign leading the one that should launch getty and incidentally the login process : console::respawn:/sbin/getty -L console 115200 vt100 # GENERIC_SERIAL


And BTW, d'better be safe than sorry… ensure that you get valid username / password associations prior to making the change…

MC68020
  • 7,981