저는 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/sudoers
sudo nano /etc/sudoers
user ALL=(ALL) NOPASSWD: ALL
그러나 이는 sudo의 기본 동작을 변경하고 해당 사용자가 사용될 때 비밀번호를 입력하도록 요구하지 않습니다.sudo