키보드 없이 터미널의 비밀번호 필드에 비밀번호를 입력하세요.

키보드 없이 터미널의 비밀번호 필드에 비밀번호를 입력하세요.

테스트를 위해 내 컴퓨터에 여러 임시 계정이 있고 자주 전환합니다. 그 중 하나는 test이고 다른 하나는 이라고 가정합니다 test1. 나는 일 중이고 test가야 해요 test1. 일반적으로 비밀번호를 묻는 필드를 su - test1반환합니다 . 그런 다음 비밀번호를 입력하고 을 클릭합니다 . 변수에 비밀번호를 저장 하고 명령을 사용하여 필드를 이스케이프하는 방법이 있습니까?Password:test1EnterpasssuPassword:

노트:나는 su그것을 사용하고 비밀번호를 변수에 저장하는 것과 관련된 보안 위험이 있다는 것을 알고 있습니다. 임시 계정이기 때문에 걱정하지 않습니다.

답변1

su이는 isatty(3)STDIN이 실제로 TTY를 참조하는지 확인하기 위해 수행됩니다.

su따라서 STDIN을 통해 비밀번호를 전달하기 위해 변수를 사용할 수 없습니다.

답변2

그래서 나는 읽었다.힘멜대답하고 매우 좌절감을 느꼈습니다. 그러다가 눈치챘어울리히 슈바르츠추천합니다 ssh. 읽다 ssh가 우연히 이라는 항목을 발견 했습니다 sshpass. 비밀번호가 필요하며 ssh 명령에 대한 입력을 제공합니다. 나는 취약성 문서/man 페이지를 탐색할 것입니다.

내 문제에 대한 해결책:my passwordfor 가정하면 test1 1tset내 질문에 대한 명령은 다음과 같습니다.sshpass -p '1tset' ssh test1@host

관련 정보