![비밀번호를 입력하지 않고 su 또는 sudo 명령을 실행하는 스크립트를 작성할 수 있습니까? [복사]](https://linux55.com/image/35727/%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%EC%A7%80%20%EC%95%8A%EA%B3%A0%20su%20%EB%98%90%EB%8A%94%20sudo%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%9E%91%EC%84%B1%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
비밀번호를 입력하지 않고도 su
실행하거나 명령할 수 있는 스크립트를 작성할 수 있습니까? sudo
구글링해보니 su
버퍼에서 비밀번호를 읽지 못했다고 나오네요. 그렇다면 해결책이 있나요?
답변1
내가 아는 한 두 가지 방법이 있습니다.
좋은 생각
특정 사용자나 그룹에 대한 설정을 지정할 때 파일 의 옵션을 sudo
사용할 수 있습니다 .ALL=NOPASSWD
/etc/sudoers
이를 수행하는 방법에 대한 몇 가지 팁:
나쁜 생각
터미널 장치 대신 표준 입력을 통해 비밀번호를 제공하는 옵션을 사용할 수 있습니다 sudo
. -S
예를 들어 파일에 비밀번호를 쓴 후 실행할 수 있습니다 cat myPass.txt | sudo -S your_command
.
답변2
다음을 위해 사용할 수 있습니다 expect
:
#!/usr/bin/expect
set password "mypassword"
spawn sudo mkdir -v newdir
expect "Password:"
send -- "$password\n"
expect "mkdir: created directory 'newdir'"