Busybox를 실행하는 라우터에 자동으로 로그인

Busybox를 실행하는 라우터에 자동으로 로그인

내 라우터는 Busybox가 내장된 Linux를 실행합니다. 자동으로 로그인하여 웹 브라우저를 실행하고 싶습니다. /etc/inittab파일 은 다음과 같습니다 .

# /etc/inittab init(8) BusyBox 구성
#
# 저작권 (C) 1999-2004, 저자: Erik Andersen
#
#
# BusyBox init는 실행 수준을 지원하지 않습니다. 실행 수준 필드는 다음과 같습니다.
# BusyBox init는 이를 완전히 무시합니다. 런레벨이 필요한 경우 sysvinit를 사용하십시오.
#
#
#각 항목의 형식::::
#
# : 경고: 이 필드는 BusyBox init에 대해 색다른 의미를 갖습니다!
#
# BusyBox init는 id 필드를 사용하여 컨트롤 tty를 지정합니다.
# 실행할 지정된 프로세스입니다. 이 필드의 내용은 다음과 같습니다.
# "/dev/"에 추가하고 그대로 사용합니다. 이 필드는 필수가 아닙니다.
#은 고유하지만 그렇지 않은 경우 이상한 결과를 얻을 수 있습니다. 이 경우
# 해당 필드를 공백으로 두면 완전히 무시됩니다. 또한 참고하세요
# BusyBox는 직렬 콘솔이 사용 중임을 감지하고 모든 항목을
# 비어 있지 않은 ID 필드를 포함하면 실행되지 않습니다. BusyBox 초기화는
# utmp에 내용이 없습니다. 냄새나는 utmp는 필요하지 않습니다.
#
# : 런레벨 필드는 완전히 무시됩니다.
#
#: 유효한 작업에는 sysinit, respawn, Askfirst, wait, Once,
# 다시 시작하고 ctrlaltdel을 누른 후 종료합니다.
#
# 참고: Askfirst는 respawn처럼 동작하지만 지정된 명령을 실행하기 전에
# 프로세스를 진행하면 "이 기능을 활성화하려면 Enter를 누르십시오."라는 줄이 표시됩니다.
# console." 그런 다음 시작하기 전에 사용자가 Enter를 누를 때까지 기다립니다.
# 프로세스를 지정합니다.
#
# 참고: 인식할 수 없는 작업(예: initdefault)으로 인해 init가 실행됩니다.
# 오류 메시지가 표시된 후 작업을 계속합니다.
#
#: 실행할 프로세스와 해당 명령줄을 지정합니다.
#
# 참고: BusyBox init는 inittab 없이 작동합니다. inittab이 없는 경우
# 다음과 같은 기본 동작이 있음을 발견했습니다:
         ::한 번: /usr/sbin/usbconsole
         ::sysinit:/etc/init.d/rcS
         ::ctrlaltdel:/sbin/reboot
         ::종료:/etc/init.d/rc.shutdown
         ::종료:/sbin/swapoff -a
         ::종료:/bin/umount -a -r
         ::재시작:/sbin/init
#
# /dev/console이 직렬 콘솔이 _아닌_ 것으로 감지되면,
# 다음도 실행합니다:
# tty2::askfirst:/bin/sh
# tty3::askfirst:/bin/sh
# tty4::askfirst:/bin/sh
#
# 시작 시 시스템 구성/초기화 스크립트.
# 단일 사용자 모드에서 시작하지 않는 한 먼저 실행합니다.
#
#::sysinit:/etc/init.d/rcS
#::sysinit:/linuxrc

# 선택한 tty에 /bin/sh 호출을 합니다.
#
# 아래에서는 쉘 명령 앞에 "-"를 추가하여 이를 나타냅니다.
# shell 로그인 쉘이어야 합니다. 일반적으로 이는 다음으로 인해 발생합니다.
# 로그인. 하지만 이 예에서는 로그인을 우회하므로 BusyBox를 사용하여 그렇게 할 수 있습니다.
#이것 스스로...
#
# 콘솔에서 "askfirst" 쉘(무엇이든)을 시작합니다.

::먼저 물어보세요: -/bin/sh

# /dev/tty2-4에서 "askfirst" 쉘을 시작합니다.
# tty2::askfirst:-/bin/sh
# tty3::askfirst:-/bin/sh
# tty4::askfirst:-/bin/sh

# 선택한 tty에 /sbin/getty 호출을 합니다.
# tty4::respawn:/sbin/getty 38400 tty5
# tty5::respawn:/sbin/getty 38400 tty6

# 직렬 회선(터미널용)에 getty를 넣는 방법의 예
#::respawn:/sbin/getty -L ttyS0 115200 vt100

내 라우터는 Busybox가 내장된 Linux를 실행합니다. 시작 시 자동으로 로그인하여 웹 브라우저를 실행하고 싶습니다. 이것은 "/etc/inittab 파일"입니다:
#
# 모뎀 회선에 getty를 넣는 방법의 예입니다.
#::respawn:/sbin/getty 57600 ttyS2

# init 프로세스를 재시작할 때 해야 할 일
#::다시 시작:/sbin/init

# 다시 시작하기 전에 해야 할 일
#::ctrlaltdel:/sbin/reboot
#::shutdown:/bin/umount -a -r
# ::shutdown:/sbin/swapoff -a

답변1

아마도 하나약간답변이 늦었지만 어쨌든 추가하기로 결정했습니다.

Cisco 로고(또는 무엇이든)에 매달려 있는 것은예상되는파일이 비어 있을 때의 동작 /etc/inittab. 대답은 컴퓨터에 로그인하려는 방법에 따라 다릅니다. 다음 줄의 주석 처리를 해제하세요.

::respawn:/sbin/getty -L ttyS0 115200 vt100

에 로그인 프롬프트를 제공할 수 있습니다 /dev/ttyS0. 직렬을 통해 연결했다고 가정합니다 /dev/ttyS0(이것이 실제로 귀하의 인터페이스인지 확인하십시오.기계/dev/ttyPS0) 다음을 추가하면 자동 로그인을 추가할 수 있습니다.

ttyPS0::respawn:/bin/login -f <user>

그러면 자동으로 로그인됩니다 <user>. 또 다른 방법은 /sbin/getty아래와 같이 사용자 정의 자동 로그인 유틸리티를 사용하는 것입니다.여기.

예를 들어 자동 로그인을 사용하려는 경우 예제를 수정할 수 있습니다 /dev/tty3. 브라우저의 자동 시작은 X와 사용 중인 브라우저에 따라 다릅니다. 끝에 다음과 같은 내용을 추가하여 디렉터리의 또는 (보통)을 수정합니다 ~/.profile.~/.bashrc${HOME}/home/<user>

startx
google-chrome-stable &

그러나 특정 직렬/USB 케이블을 통해 라우터에 연결된 경우에는 작동하지 않을 수 있습니다.

답변2

테스트할 라우터는 없지만 적어도 Buildroot + BusyBox + QEMU에서는 다음 fstab 항목이 자동으로 로그인되어 모든 것이 작동하는 것처럼 보입니다.

::respawn:-/bin/sh

내가 설명한 대로:Buildroot BusyBox init에 루트 사용자 이름이나 비밀번호를 입력하지 않고 자동으로 로그인하는 방법은 무엇입니까?

리드하는 것을 잊지 마세요 -! 그렇지 않으면 TTY 상호 작용이 약간 손상됩니다. 예를 들어 Ctrl+C를 사용하여 포그라운드 프로그램을 종료할 수 없습니다.

다른 사용자로 로그인하려면 /bin/login아래와 같이 사용할 수 있습니다.https://unix.stackexchange.com/a/434799/32558그러나 다음과 같은 이유로 대시 앞에 대시를 추가할 수도 있습니다 /bin/sh.

::respawn:-/bin/login -f user0

관련 정보