![자동으로 비밀번호를 입력하는 스크립트를 만드는 방법은 무엇입니까? [복사]](https://linux55.com/image/66158/%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A5%BC%20%EC%9E%85%EB%A0%A5%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
스크립트를 작성 중입니다. 나는 이 스크립트가 다음 작업인 루트로 로그인을 수행하기를 원합니다. (한 줄을 사용하려고 합니다.) 비밀번호를 자동으로 입력하는 스크립트는 어떻게 작성하나요?
#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
. 대부분의 명령에 작동하지만 이를 사용하는 경우 비밀번호를 요청하지 않으면 타임스탬프가 여전히 최신이므로 비밀번호가 여전히 남아 있다는 점에 유의하세요. 먼저 비밀번호 쿼리를 강제 실행하는 데 사용할 수 있습니다 . . 그러나 에서 사용하는 것이 더 좋습니다 .stdin
echo 'passwd'|sudo -S [command]
su
stdin
sudo
sudo -k
sudo -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