암호를 표시하지 않고 bash 명령줄에 변수로 전달하고 *****로 표시하는 방법

암호를 표시하지 않고 bash 명령줄에 변수로 전달하고 *****로 표시하는 방법

명령줄을 통해 실행되는 몇 가지 bash 명령이 있습니다.

Sample Bash Command: ksh Script.ksh Filename filepath userid host password 

명령줄에서 비밀번호를 전달해야 하지만 실행 시 비밀번호가 표시됩니다. bash 명령을 수정하고 "password as ****"를 표시하는 방법이 있습니까?

Sample: ksh Script.ksh Employee.txt /home/opt/ empuser 10.20.30.99 abc@123 

위의 bash 명령을 다음과 같이 수정할 수 있습니다.

Sample: ksh Script.ksh Employee.txt /home/opt/ empuser 10.20.30.99 ********

스크립트 내부의 값을 읽으시겠습니까?

Script Content: 

var1 = $1 
var2 = $2 
var3 = $3 
varpassword = $4 

..... reading password and running sftp command

답변1

명령을 입력하면 입력한 내용이 화면에 그대로 유지됩니다. tput를 사용하여 위 줄을 제거해 볼 수 있습니다 .

#!/bin/bash
  
sleep 5
tput cuu 1
echo "Running: $0 $1 $2 $3 *********                                        "
sleep 5

터미널이 충분히 넓고 프롬프트가 충분히 짧다면 이 방법이 효과가 있을 수 있습니다.

아니면 그냥 화면을 지우세요 clear.

그러나 비밀번호는 여전히 에 표시됩니다 ps -ef. 명령줄에서 암호를 설정하는 것은 일반적으로 좋지 않은 생각이며, 특히 장기 실행 프로그램의 경우 더욱 그렇습니다. 예를 들어, ssh비밀을 숨기는 방법을 알고 싶을 수도 있습니다 .

관련 정보