저는 루트 계정이라는 단 하나의 계정만 가진 GNU/Linux 시스템을 가지고 있습니다. 시스템을 부팅할 때 자동으로 루트 계정에 로그인한 다음 해당 세션 내에서 "telnet" 명령을 실행하기를 원합니다. 어떻게 해야 하나요?
내 시스템에는 GUI가 없으며 필요하지 않으면 설치하고 싶지 않습니다...
답변1
이것이 올바른 방법인지는 모르겠지만 작동합니다.
시작 시 가상 터미널에서 실행되는 프로그램은 /etc/inittab
이 파일에 의해 결정됩니다. 이들은 모두 루트로 실행됩니다. 다음과 같은 줄이 있습니다.
1:2345:respawn:/sbin/getty 38400 tty1
그들은 어떤 가상 터미널에서 무엇이 끝날지 결정합니다. /sbin/getty
가상 터미널을 제공합니다. 내 경우에는 /sbin/getty 38400 tty1
첫 번째 가상 터미널에서 수단이 제공됩니다 getty
. 그런 다음 가상 터미널의 로그인 프롬프트가 나오는 곳이 호출됩니다.tty1
getty
login
이를 수행하는 방법에는 두 가지가 있습니다.
빠르고 더러운 방법:
/sbin/getty
텔넷을 통해 매개변수, 최소한 가상 터미널로 다음과 같이 바꾸십시오.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
스위치를 사용하십시오.