Arch Linuxは/usr/lib/initcpio/busybox
mkinitcpio-busybox 1.27.2-1パッケージに属し、次のようになります。低機能構成、たとえば、CONFIG_FEATURE_USE_INITTAB が設定されていません。
/etc/profile
busyboxを含むカスタムinitramfsでソースコード操作を実行するためにSSHネットワークログインを取得できました。まだ一つあります。禁煙健康増進協会シェルプロンプトはVGAモニターに表示されます。
ただし、「vga」シェルはソースではありません/etc/profile
。尋ねる:ログインシェルと非ログインシェルの違いは何ですか?このシェルはログインシェルではないようです。シェルは次のコマンドで始まります/init
。
exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
返品:
exec setsid sh -c 'exec sh -i </dev/tty1 >/dev/tty1 2>&1'
exec setsid sh -c 'exec sh - </dev/tty1 >/dev/tty1 2>&1'
exec setsid sh -c 'exec -sh </dev/tty1 >/dev/tty1 2>&1'
busybox
ash
このシェルをソーシングする/etc/profile
か(自動)ログインシェルにするにはどうすればよいですか?
答え1
ルールに従って始まるコマンド名でシェルを呼び出すと、そのシェルはログインシェルとして機能します-
。これは、パスでexec -sh
実行可能ファイルを呼び出す場合に機能します。-sh
BusyBox ashはこの-l
オプションもサポートしているのでsh -l
。
ログイン時にlogin
プログラム(またはsshd
ログインを処理するすべてのプログラム)は、コマンド名で始まり、ユーザーのシェルを実行することを担当します-
(コマンド名は実行可能ファイル名と同じである必要はありません。非常に一般的なルールですが、意図login
的に違反します。 )ここで、「ログインしているすべてのアイテムの処理」はミニスクリプトなので、これを処理する必要があります。