첫 번째 기사는 여기에 있습니다. CentOS 6 시스템에 대해 몇 가지 테스트를 실행하려고 하는데 테스트에서 네트워킹이 비활성화되어 직렬 포트를 통해 통신하고 있습니다.
bash 루트 쉘을 갖도록 ttyS1을 설정하는 시작 작업을 만들었습니다. 나는 다음을 사용했다:
/sbin/agetty -n -l /bin/bash ttyS1 115200 vt102
다음은 로그인 프로그램으로 /bin/bash를 실행하는 해킹입니다. 작동하지만 --rcfile
전달 하고 싶습니다 /bin/bash
. 그렇지 않으면 루트로 실행 중이더라도 원치 않는 출력 "bash:/root/.bashrc: Permission Denied"가 표시됩니다.
참고: 사용 중인 agetty 버전에는 --version이나 --login-options가 없습니다.
답변1
agetty
프로그램이 실행될 것으로 예상합니다 -l
. 예를 들어 Perl 스크립트로 만든 다음 만들 수 있습니다.저것이 스크립트를 호출하는 등의 매개변수를 제공하세요.myshell
#!/usr/bin/perl
exec 'bash --rcfile myprofile'
myshell
명령에 경로 이름을 사용하십시오 agetty
.
나는 사용했다진주bash
귀하의 (또는 ) 개인 데이터를 읽지 않기 때문입니다 sh
. 실행 중인 스크립트를 사용하면 /bin/sh
사용자의 스크립트를 읽을 수 있습니다 .profile
(이는 의도와 반대되는 것 같습니다). exec
Script 및 Script를 포함한 다른 스크립팅 언어 sh
도 이 기능을 제공합니다 bash
.
답변2
이것이 과잉이라고 생각할 수도 있지만 getty를 사용하는 대신 getty를 사용하여 직렬 회선에서 쉘을 실행할 수 있습니다.슬립, 직렬 회선 인터넷 프로토콜. 이는 직렬 포트를 네트워크 인터페이스로 전환하고 SSH 또는 기타 수단을 사용하여 여러 로그인을 동시에 연결하고 rsync를 사용하여 파일을 보내는 등의 작업을 수행할 수 있으며 이 모든 작업은 안정성과 오류 감지의 이점을 제공합니다.
커널이 지원한다고 가정하면(일반적으로 그렇습니다) 설정하고 사용하는 것은 간단합니다. 가장 쉬운 방법은 일반적으로 패키지에 slattach
있는 명령을 사용하는 것입니다. net-tools
머신에서 명령 실행
sudo slattach -p cslip -s 19200 /dev/ttyS0 &
sudo ifconfig sl0 192.168.1.2 pointopoint 192.168.1.3
첫 번째 명령은 전송 속도와 직렬 장치를 지정하고, 두 번째 명령은 이 시스템과 다른 시스템의 IP 주소를 제공합니다. 반대쪽에서도 동일한 명령을 실행하여 2개의 IP 주소를 교환합니다. 아직 사용하지 않은 주소 세트를 선택하세요.