sudo에서 스크립트를 실행하고 비밀번호를 자동 완성하는 방법

sudo에서 스크립트를 실행하고 비밀번호를 자동 완성하는 방법

저는 Windows용 Bash(Linux 하위 시스템)를 가지고 있고 Linux에서 실행되는 응용 프로그램에 대한 몇 가지 Powershell 스크립트(재미용)를 만들어 데스크탑에서 시작할 수 있습니다.

모두 가상화되고 오프라인이기 때문에 이미 내용을 모두 알고 있기 때문에 보안에 대한 강의를 별로 찾고 있지 않고 단지 재미있는 학습 경험이 되기를 바랍니다 ;)

이것이 내가 생각해낸 것이지만 두 가지 문제가 있습니다.

1: 내 스크립트는 첫 번째 줄 이후에 계속되지 않습니다. 따라서 powershell은 bash를 입력하지만 후속 명령을 실행하지 않습니다.

2: 루트 비밀번호를 입력해야 합니다. 일부 앱에는 루트 액세스가 필요하기 때문에 이를 건너뛰거나 그냥 입력해 주기를 원합니다.

bash (powershell command to drop into the bash shell)
export DISPLAY=:0 (necessary for gui apps)
sudo (app name)
(app asks for password)
Password

따라서 이 명령을 하나씩 실행하면 제대로 작동하지만(첨부된 시냅틱 패키지 관리자 및 powershell 스크린샷 참조) 이제는 게으른 트리이기 때문에 자동화되기를 원합니다. 여기에 이미지 설명을 입력하세요.

답변1

솔루션은 두 부분으로 나뉩니다.

1부 - 스크립트 실행

과정은 간단합니다. 전체 스크립트를 bash에 인수로 전달해야 합니다.

bash -c 'export DISPLAY=:0 ; sudo <app_name>'

저는 파워쉘을 사용하지 않습니다. 따라서 위 줄의 powershell 구문에 따라 관련 부분을 이스케이프하세요.

2부 - 비밀번호 건너뛰기

이렇게 하려면 sudoers에 있는 파일에서 비밀번호 없는 로그인을 허용 해야 합니다 /etc/sudoers. user사용이 끝나면 다음 코드 조각을 입력하세요(귀하의 코드로 바꾸세요 ).username/etc/sudoerssudo nano /etc/sudoers

user ALL=(ALL) NOPASSWD: ALL 

그러나 이는 sudo의 기본 동작을 변경하고 해당 사용자가 사용될 때 비밀번호를 입력하도록 요구하지 않습니다.sudo

관련 정보