
사용자가 물리적으로 컴퓨터를 사용하는 경우 한 가지 작업을 수행하고 사용자가 SSH를 통해 로그인한 경우 한 가지 작업을 수행하고 싶은 쉘 스크립트가 있습니다.
그렇게 하려면 어떻게 해야 할까요?
좀 더 구체적으로 말하자면, 내 일반 컴퓨터는 OS X이고 거기서는 OS X 그래픽 편집기(BBEdit)를 내 EDITOR로 사용하고 싶습니다. 그러나 넷북에서 Mac에 SSH로 연결하는 경우 vim을 사용하고 싶습니다. Mac에 대한 그래픽 연결이 없습니다.
감사해요!
답변1
SSH_CONNECTION, SSH_TTY 또는 DISPLAY 환경 변수를 사용할 수 있어야 합니다.
보다:http://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/ssh.1.html
SSH_CONNECTION Identifies the client and server ends of the connection. The variable contains
four space-separated values: client IP address, client port number, server IP
address, and server port number.
편집: SSH_CLIENT도 옵션이지만 매뉴얼 페이지에는 표시되지 않습니다.
답변2
env
로컬로 로그인했을 때와 SSH를 통해 로그인했을 때를 비교하세요 .
SSH_CONNECTION
예를 들어 SSH를 통해 로그인할 때만 정의되는 가 SSH_CLIENT
있습니다 .SSH_TTY
답변3
나는 /var/run/utmpx("man utmpx" 참조)에 이 정보가 있다고 생각합니다. "who"를 실행하면 who 명령을 통해 원격 노드에서 연결되었는지 여부를 알 수 있습니다(어디에서 연결했는지도 알 수 있음).
따라서 언제든지 who 명령을 사용하고 출력을 마사지하여 이를 확인할 수 있습니다.
참고: 위의 답변(SSH_CONNECTION 사용에 대한)이 더 나은 솔루션이라고 생각합니다.