
実行時にユーザーに空の画面が表示され、タイプライターのように入力のみできるスクリプトを作成しました。これは最終的に純粋なBashに移植する予定のPythonスクリプトです。
それでは、起動時に実行されるLiveUSBを作成したいと思います。起動時にできる唯一の作業はテキストを入力するだけです(もちろん、システムをシャットダウンできるはずです)。 GUIやユーザーがこの「ホーム画面」をバイパスする方法も必要ありません。私は単一目的の「キオスクモード」CLI環境を望んでいます。これは次のようになります。パイルーム、オペレーティングシステムレベルでのみ可能で、GUIはありません。
したがって、質問は(私は実行設定の経験はあまりありません)です。これを達成するための一般的なステップは何ですか?スクリプトをどこに配置する必要があります。起動時にすぐにスクリプトを実行するように起動システムに指示するにはどうすればよいですか。
答え1
をgetty
使用している場合は、agetty
プログラムのオプションを変更して端末に自動ログインを設定できます。--autologin <username>
ここ。
その後、そのユーザーのログインシェルを必要に応じて設定できます。/etc/shells
ユーザーが変更できないようにリストに表示しないでくださいchsh
。ユーザーが通常のシェルに入ることを防ぎ(したがって任意の操作を実行できるようにしたい場合)、ユーザーがプログラム内でそのシェルにアクセスできないようにする必要があります。プログラムがログインシェルの場合、終了するとセッションが終了して返されますgetty
(これは自動的に同じプログラムに再度ログインできます)。
答え2
交換できますinit
スクリプトを実行する簡単なプログラムを使用してください。 Ubuntu 15.04 VMを設定し、この単純なプログラムを作成して次の名前で保存しますinit.c
。
int main() {
system("/bin/bash -c /init.sh");
return 0;
}
そして簡単なスクリプト:
#!/bin/bash
echo Start:
while read line; do
echo -n "Upside down: "
echo $line | tr '[unbqdphymwaefjg]' '[nuqbpdyhwmeajf6]'
done
init 0
ルートとしてコンパイルしてインストールします(すでにスナップショットを作成しているか、システムの回復方法を知っている仮想マシンでこれを行う必要があります。):
gcc init.c -o init
sudo cp init /init
sudo ln -sf /init /sbin/init
sudo cp init.sh /init.sh
その後、再起動するとプロンプトが表示されますが、簡単に突破する方法はありません。
これを組み合わせることができるはずです。OEMインストーラ不要なものを取り除き、小さなISOを作成します。