私はルートアカウントと呼ばれる唯一のアカウントを持つGNU / Linuxシステムを持っています。システムの起動時に自動的にルートアカウントにログインし、そのセッション内で "telnet"コマンドを実行したいと思います。どうすればいいですか?
私のシステムにはGUIがなく、必要でなければインストールしたくありません...
答え1
これが正しい方法かどうかはわかりませんが、うまくいきます。
起動時に仮想端末で実行されるプログラムは、/etc/inittab
このファイルによって決まります。これらはすべてrootとして実行されます。次の行があります。
1:2345:respawn:/sbin/getty 38400 tty1
彼らはどの仮想端末で何が終わるかを決定します。/sbin/getty
仮想端末を提供します。私の場合、/sbin/getty 38400 tty1
最初の仮想端末で手段が提供されますgetty
。その後、仮想端末のログインプロンプトが表示される場所が呼び出されます。tty1
getty
login
これを行う方法は2つあります。
迅速で汚れた方法:
/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
スイッチを使用してください。