자동으로 비밀번호를 입력하는 스크립트를 만드는 방법은 무엇입니까? [복사]

자동으로 비밀번호를 입력하는 스크립트를 만드는 방법은 무엇입니까? [복사]

스크립트를 작성 중입니다. 나는 이 스크립트가 다음 작업인 루트로 로그인을 수행하기를 원합니다. (한 줄을 사용하려고 합니다.) 비밀번호를 자동으로 입력하는 스크립트는 어떻게 작성하나요?

#echo "Hello Admin"
#su root@admin

여기에 이미지 설명을 입력하세요.

여기에 이미지 설명을 입력하세요.

비밀번호를 입력하지 않고 bash 스크립트를 실행하고 싶습니다. 내 비밀번호를 묻는 이유는 무엇입니까?

답변1

그것은 불가능합니다! 해당 명령에는 작동하지 않지만 을 사용하여 sudo 사용자를 생성할 수 있습니다 . 온라인에서 sudo 사용자를 생성하여 비밀번호 없이 명령을 실행하는 ALL ALL: NO Password방법을 검색하세요 .sudo

답변2

su비밀번호를 사용하지 않는 것이 목표라면 사용자가 비밀번호 없이 사용할 수 있도록 허용을 사용하는 것이 좋습니다 sudo su.su/etc/sudoers

[username] ALL=(ALL) NOPASSWD: /bin/su

또는

[username] ALL=(ALL) NOPASSWD: ALL

사용자는 이미 루트 액세스를 통해 원하는 모든 작업을 수행할 수 있기 때문입니다. 스크립트에서 일반 텍스트 비밀번호를 전달하는 것보다 장점은 root비밀번호가 유출되지 않는다는 것입니다. 스크립트를 제거한 후에도 비밀번호를 읽을 수 있다는 점에 유의하세요.

편집: 아래 솔루션은 결국 작동하지 않습니다. 명령으로 처리하고 실행 후 종료합니다 su. 대부분의 명령에 작동하지만 이를 사용하는 경우 비밀번호를 요청하지 않으면 타임스탬프가 여전히 최신이므로 비밀번호가 여전히 남아 있다는 점에 유의하세요. 먼저 비밀번호 쿼리를 강제 실행하는 데 사용할 수 있습니다 . . 그러나 에서 사용하는 것이 더 좋습니다 .stdinecho 'passwd'|sudo -S [command]sustdinsudosudo -ksudo -k && echo 'passwd'|sudo -S [cmd]NOPASSWD/etc/sudoers

NOPASSWD:편집: 또한 sudo -S읽기 sudo비밀번호를 사용 stdin하고 대신 이와 유사한 것을 사용할 수도 있습니다 echo [password]|sudo -S su. sudo사용자 비밀번호를 얻고 위와 같이 /bin/su실행 권한이 필요합니다. ALL모든 명령과 마찬가지로 예상되는 비밀번호는 ' sudo가 아닌 사용자의 비밀번호입니다 .root

관련 정보