오랫동안 이것을 검색하고 있는데 쉘 스크립트에서 암호를 전달할 수 있는지 알고 싶습니다. 많은 답변이 아니오로 돌아 왔습니다. 최근에 쉘 스크립트에서 암호를 전달하는 방법을 설명하는 기사를 읽었습니다. 나는 그것을 시도했지만 작동하지 않는 것 같습니다. 이 링크 입니다. 누구나 체크 아웃하고 되돌릴 수 있습니까? 또한 pls는 쉘 스크립트에서 암호를 전달하는 방법이 있다고 말합니까? pls가 없으면 리눅스가 암호 입력을 얻는 방법을 알려주지 않습니까?
답변
“암호 입력”은 사용자에게 보이지 않고 데이터를 입력하는 것을 의미합니다.
bash를 사용할 때 -s
옵션을 사용하여 입력 한 문자가 표시되지 않도록 할 수 있습니다 .
read -p "Password please: " -s pass
또는 stty -echo
(비활성화 echo
)로 입력 한 문자를 숨기도록 터미널의 동작을 변경하십시오 . 셸이 내장 read
된 변수를 사용 하여 암호를 읽은 후 (아래 예에서 $pass
)로을 다시 켜십시오 stty echo
. Enter줄 바꿈이 숨겨져 있기 때문에 줄 바꿈을 인쇄하여 나중에 새 줄에 출력 할 수 있습니다.
stty -echo
read -p "Password please: " pass
stty echo
printf '\n'
read
하고 printf
있는 내장 인 쉘. 기본적으로 설치되는 패키지에서 stty
제공됩니다 coreutils
. 즉,이 스 니펫은 매우 이식성이 뛰어납니다.
참고 :이 -p
옵션은 표준이 아니라에서 제공 bash
됩니다. 다른 쉘에서 프롬프트를 표시해야하는 경우 다음을 사용하십시오.
printf "Password please: "
stty -echo
read pass
stty echo
printf '\n'
참고 문헌 :
답변
어떤 프로그램으로 비밀번호를 전달 하시겠습니까?
링크의 스크립트가 저에게 효과적입니다. 쉘 스크립트는 아니지만 expect 스크립트입니다 (패키지 expect
를 설치 해야합니다 ). expect는 텍스트 기반 대화 형 프로그램을 자동화하는 일반적인 방법입니다.
비 대화식 ssh
로그인은 종종 빈 암호문으로 키 기반 인증을 사용하여 수행됩니다.
와 같은 일부 다른 프로그램 sudo
에는 stdin에서 비밀번호를 읽는 옵션이 있습니다.
암호를 명령 줄 옵션으로 제공하는 것은 대부분의 시스템에서 모든 사용자가와 같은 간단한 도구를 사용하여 명령 줄 인수를 포함하여 다른 사용자 프로세스를 볼 수 있기 때문에 종종 보안 문제 ps
입니다.
답변
스크립트는 절대로 비밀번호를 처리해서는 안됩니다. 암호가 필요한 응용 프로그램이 있으면 암호를 요청하거나 가능하지 않은 경우 응용 프로그램으로 인증하는 더 좋은 방법을 찾으십시오. http://mywiki.wooledge.org/BashFAQ/069를 읽으십시오
답변
bash 스크립트에 암호를 저장하는 방법이 있지만 실제로는 아무도 읽을 수 없도록 스크립트를 암호화하거나 어떤 유형의 디버거도 실행하여 정확히 무엇을하고 있는지 확인할 수 있습니다. bash / shell 스크립트를 암호화하고 실제로 실행 가능하게 하려면 여기에 복사하여 붙여 넣으십시오 .
위의 페이지에서 스크립트를 제출하기 만하면됩니다 (심장을 위해 먼저 샘플 스크립트를 제출할 수 있습니다). zip 파일이 생성됩니다. 다운로드 링크를 마우스 오른쪽 버튼으로 클릭하고 제공된 URL을 복사하십시오. 그런 다음 UNIX 상자로 이동하여 다음 단계를 수행하십시오.
설치:
wget link-to-the-zip-file
unzip the-newly-downloaded-zip-file
cd /tmp/KingLazySHIELD
./install.sh /var/tmp/KINGLAZY/SHIELDX-(your-script-name) /home/(your-username) -force
위의 설치 명령은 다음과 같습니다.
-
디렉토리에 암호화 된 스크립트를 설치합니다
/var/tmp/KINGLAZY/SHIELDX-(your-script-name)
. -
이 디렉토리는 암호화 된 스크립트에 대한 링크를 사용자가 대체 할 디렉토리로 바꾸어
/home/(your-username)
줍니다. 이렇게하면 절대 경로를 입력하지 않고도 스크립트에 쉽게 액세스 할 수 있습니다. -
아무도 스크립트를 수정할 수 없음-암호화 된 스크립트를 수정하려고하면 시도가 중지되거나 제거 될 때까지 스크립트를 사용할 수 없게됩니다.
-
아무도 복사 할 수 없도록합니다. 어느 누구도 스크립트를 한적한 위치에 복사 할 수 없으며 스크립트의 작동 방식을 알아볼 수 없습니다. 모든 스크립트 사본은 설치 중에 지정한 원래 위치에 대한 링크 여야합니다 .
노트:
나는 이것이 사용자에게 응답을 요구하는 대화 형 스크립트에서 작동하지 않는다고 생각합니다 . 값은 스크립트에 하드 코딩되어야합니다. 암호화는 아무도 그 값을 실제로 볼 수 없도록 보장하므로 걱정할 필요가 없습니다.