8

Is there any simple and straightforward way in which I can set my Debian 8.2 box to automatically login, at startup, with the root account on the console?

There is no GUI installed on the machine.

Following instructions from Automatic root login in Debian 6.0 without GUI (xserver) does not work (files don't exist, options are deprecated).

15

The file /etc/inittab is not used under systemd any longer. If you wanted, you could install systemv and you would find yourself a brand new inittab, but this would mean walking backward like crabs.

You can instead edit the file /lib/systemd/system/getty@.service and change the line

  ExecStart=-/sbin/agetty --noclear %I $TERM

to

  ExecStart=-/sbin/agetty --noclear -a root %I $TERM

This just follows from the agetty manual page, which states, among other things:

-a, --autologin username

Log the specified user automatically in without asking for a login name and password. The -f username option is added to the /bin/login command line by default. The --login-options option changes this default behavior and then only \u is replaced by the username and no other option is added to the login command line.

To be sure, I just tested this on my Debian VM, and it works fine.

| improve this answer | |
  • 1
    Was looking for inintab replacement on systemd, good answer! – Alfabravo Sep 8 '15 at 14:52
  • Still works in Debian 9. Tested in combination with nfsroot on some diskless boxes. And I recommend to keep in mind Arnie97's advice (I am commenting here, as this is the route I've taken, I'm just that lazy for the moment :-) – frr Aug 7 '19 at 14:48
7

DO NOT edit the units in /lib/systemd directly, since those are managed by installed packages, and would be overwritten during package upgrades.

Instead, use $ sudo systemctl edit getty@.service to create a drop-in unit at /etc/systemd/system/getty@.service.d/override.conf with the following contents:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --noclear --autologin your_user_name %I $TERM

It has the same effects as @MariusMatutiae's answer, but won't be touched during system upgrades.

The first line selects the [Service] section to override. The second line explicitly clears the ExecStart entry -- otherwise the original ExecStart in /lib/systemd would still be effective, since multiple ExecStart directives are allowed in a single oneshot service unit. And the last line defines the new ExecStart command line, which is already explained in @MariusMatutiae's answer.

Refer to the systemd.unit(5) manual pages for more details and examples.

| improve this answer | |
-1

You can edit the file /lib/systemd/system/getty@.service and change the line

ExecStart=-/sbin/agetty --noclear %I $TERM

to

ExecStart=-/sbin/agetty --skip-login --login-options "-f root" %I 38400 linux

for auto login as root user

| improve this answer | |
  • 2
    I see you're new here, this question has already been answered and you just copied the answer.. – Gizmo May 30 '18 at 10:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.