사용자를 전환하고 필요한 정보 배경을 스크립트로 표시하는 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