我有一个 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
提供。然后会调用,这就是虚拟终端上的登录提示的来源。tty1
getty
login
所以有两种方法可以做到这一点:
快速而肮脏的方法:只需
/sbin/getty
通过 telnet 替换 ,加上参数,至少一个虚拟终端,如下所示:1:2345:respawn:/usr/bin/telnet foo.bar
这可能会起作用,但不是一个很好的方法,因为没有创建 tty。如果您还想将机器用于其他用途,这可能会导致其他问题,因此我建议:
正确的方法:安装
getty
可以运行任何程序的替代品,例如rungetty
.然后打电话那:1:2345:respawn:/sbin/rungetty tty1 -- /usr/bin/telnet foo.bar
注意:如果使用rungetty
,程序nobody
默认在该用户下运行。这几乎总是比运行程序更可取root
,因为它提供了更好的安全性。如果你做真正需要的root
用户(或任何其他用户),使用该-u
开关。