사용자를 전환하고 필요한 정보 배경을 스크립트로 표시하는 Linux 쉘 스크립트

Nov 20 2020

아래 시나리오에 대한 샘플 Linux 셸 스크립트가 필요합니다.

대화식 세션 중 :

su user1
Password: <Type password>

내가 할 일은 암호를 일부 파일 (예 :)에 저장하는 것 ~/pwd.txt입니다. 해당 스크립트를 실행할 때 대상 사용자의 암호를 파일에서 읽어 자동으로 전달한 su다음 대상 사용자로 전환 하는 쉘 스크립트가 필요합니다 . 프롬프트를 표시 할 필요는 없습니다. 모든 것이 백그라운드에서 처리되고 새 사용자로 직접 전환되는 것만 보면 괜찮습니다.)

도와주세요!

감사!

답변

RedaSalih Nov 20 2020 at 22:56

원시 암호를 파일에 저장하는 것은 안전하지 않습니다. 그러나 적어도 이것은 귀하의 질문에 대한 답변이 될 것입니다.

sudoers에서 NOPASSWD 사용

sudoers에 아래 항목을 추가하십시오.

<your_user> ALL=NOPASSWD: /bin/su - user1
#Then simply run
sudo -S su - user1

sudoers없이 : 비대화 형 셸에 유용합니다 .

su - user1 -c ""  < ~/pwd.txt &>/dev/null

< ~/pwd.txt ~ / pwd.txt에 저장된 암호를 su 명령으로 리디렉션합니다.

&>/dev/null stdout 및 sterr 모두> / dev / null로 리디렉션합니다.

## 더 나은 ## :

당신은 사용할 수 있습니다 GPG 비밀번호를 암호화하는 도구를 :

    # Encrypt your password with choosing a passphrase :
    gpg -c ~/pwd.txt 
    # Remove your raw password file :
    rm -f ~/pwd.txt.gpg

이제 su를 시도 할 때 위의 암호를 사용하여 암호 를 해독하십시오 .

su - user1 -c ""  <<< "$(gpg -q -d ~/pwd.txt.gpg 2>/dev/null)" &>/dev/null