[Shell Script 3] 암호 입력 시 사용자 키 입력을 표시 하지 않기

암호 입력 시 사용자 키 입력을 표시 하지 않기


사용자가 암호를 입력하는 처리에서 입력된 문자열을 화면에 표시하고 싶지 않을 때 사용하는 스크립트를 알아보았습니다 .



사용자 키 입력을 read 명령어로 취득 할 때 입력된 문자는 그대로 화면에 표시됩니다 . 이는 에코백이라는 기능으로 입력된 문자가 화면에 표시되게 터미널에서 설정되어있기 때문입니다 . 
암호를 입력 받는 프로그램은 누군가가 화면을 훔쳐볼 가능성이있기때문에 에코백을 끄는것이 보통입니다 .



  1. 터미널 설정을 변경하는 stty 명령어로 -ech를 지정합니다 . 이러면 에코백이 되지 않고 입력 문자가 표시되지 않습니다 

  1. 입력된 암호는 셸 변수 password에 대입 됩니다 . 
  2. 여기서 에코백을 하지 않으면 설정이 그대로 남으므로 입력이 끝나면 stty명령어로 echo를 지정해서 원래대로 되돌립니다 . 
  3. 입력된 암호를 써서 wget 명령어로 ftp 서버에서 파일을 내려받습니다 .