이 질문은 호기심에서 비롯된 것이지만 현재 원격 시스템과 SSH 세션이 있고 다음 명령을 실행한다고 가정해 보겠습니다.
sudo systemctl stop ssh
실행 후:
systemctl status ssh
서비스 상태를 확인해보니 서비스가 비활성(비활성)인 것 같은데, 여전히 원격으로 명령을 실행할 수 있는 이유는 무엇입니까?
다시 한번 말씀드리지만 공식적인 질문은 아니고 그냥 궁금해서요
시간 내 주셔서 감사합니다
답변1
예를 들어 SSH 데몬은 연결 시 최소한 한 번 포크됩니다 sshd
. 이제부터는 연결이 아닌 별도의 프로세스에 의해 연결이 처리됩니다.이것청취 데몬 자체.
systemctl stop ssh
새 SSH 연결을 설정할 수 없도록 청취 데몬을 중지했습니다. 분기된 프로세스가 유지되므로 기존 연결도 유지됩니다.
다음은 샘플 스니펫입니다 pstree -u
.
systemd-+-…
…
|-sshd---sshd---sshd(kamil)---bash---…
…
첫 번째는 sshd
루트로 실행되는 데몬입니다. 두 번째는 여전히 루트 권한을 유지하는 분기된 권한 상승 프로세스입니다. 세 번째는 뿌리의 힘을 잃었고 그것은 나(카미유)의 것이다. 데몬을 중지(종료)해도 다른 두 개에는 영향을 미치지 않습니다(예, 테스트했습니다).