如何让系统引导至根会话,然后在该会话中运行命令?

如何让系统引导至根会话,然后在该会话中运行命令?

我有一个 GNU/Linux 系统,只有一个帐户,即 root 帐户。当我启动系统时,我希望它自动登录到 root 帐户,然后在该会话中运行“telnet”命令。我怎样才能做到这一点?

我的系统没有 GUI,除非有必要,否则我不想安装 GUI...

答案1

我不知道这是否是正确的方法,但它确实有效:

启动时在虚拟终端上运行的程序由该/etc/inittab文件决定。这些都是以 root 身份运行的。它有这样的行:

1:2345:respawn:/sbin/getty 38400 tty1

他们决定什么最终会出现在哪个虚拟终端上。/sbin/getty提供虚拟终端。就我而言,/sbin/getty 38400 tty1手段在第一个虚拟终端上getty提供。然后会调用,这就是虚拟终端上的登录提示的来源。tty1gettylogin

所以有两种方法可以做到这一点:

  1. 快速而肮脏的方法:只需/sbin/getty通过 telnet 替换 ,加上参数,至少一个虚拟终端,如下所示:

    1:2345:respawn:/usr/bin/telnet foo.bar
    

    这可能会起作用,但不是一个很好的方法,因为没有创建 tty。如果您还想将机器用于其他用途,这可能会导致其他问题,因此我建议:

  2. 正确的方法:安装getty可以运行任何程序的替代品,例如rungetty.然后打电话:

    1:2345:respawn:/sbin/rungetty tty1 -- /usr/bin/telnet foo.bar
    

注意:如果使用rungetty,程序nobody默认在该用户下运行。这几乎总是比运行程序更可取root,因为它提供了更好的安全性。如果你真正需要的root用户(或任何其他用户),使用该-u开关。

相关内容