Linux Mint: 비밀번호를 입력하지 않고 단축키를 통해 루트 권한으로 스크립트를 실행하는 방법은 무엇입니까?

Linux Mint: 비밀번호를 입력하지 않고 단축키를 통해 루트 권한으로 스크립트를 실행하는 방법은 무엇입니까?

저는 Linux Mint 20을 사용하고 있으며 단축키를 사용하여 루트 권한으로 스크립트를 실행하고 싶습니다. 루트 비밀번호를 입력하지 않고도 이 작업을 수행하고 싶습니다. 이를 위해 /etc/sudoers.d에 스크립트를 등록했습니다.

/etc/sudoers.d/myscript

username ALL=(ALL) NOPASSWD: /home/xoric/scripts/myscript.sh

테스트 목적으로 이 스크립트는 두 개의 폴더만 생성합니다. 첫 번째에는 루트 권한이 필요하지만 두 번째에는 필요하지 않습니다.

/home/xoric/scripts/myscript.sh

#!/bin/bash
mkdir /etc/test1          #requires root
mkdir /home/xoric/test2   #does not require root

다음으로 이 스크립트를 실행하는 사용자 정의 바로 가기 키를 만듭니다. Ctrl+Alt+W 키 조합을 등록했습니다.


첫 시도

/명령:/home/xoric/scripts/myscript.sh

이는 테스트 목적으로만 사용됩니다. Ctrl+Alt+W를 누르면 두 번째 폴더가 생성됩니다. 첫 번째 폴더는 생성되지 않습니다(루트 권한 필요). 이는 루트 권한 없이 스크립트를 실행하고 있기 때문에 예상되는 현상입니다.


두 번째 시도

명령: sudo /home/xoric/scripts/myscript.sh

Ctrl+Alt+W를 눌러도 아무 일도 일어나지 않습니다. 두 폴더 모두 생성되지 않습니다. 즉, 스크립트가 실행되지 않습니다. 내 기대는 스크립트가 루트 권한으로 실행되고 비밀번호 프롬프트 없이 실행된다는 것입니다(sudoers.d에 등록되어 있으므로). 그러나 이는 사실이 아니다.


세 번째 시도

명령: gnome-terminal -e "sudo /home/xoric/scripts/myscript.sh"

Ctrl+Alt+W를 누르면 터미널이 열리고 루트 비밀번호를 묻습니다. 이렇게 하면 스크립트가 실행되고 두 개의 폴더가 생성됩니다. 이것이 내가 달성하고 싶은 것이지만 비밀번호를 입력하지 않고 하는 것입니다.


Linux(Mint)를 아는 사람 중 두 번째 시도가 왜 작동하지 않는지 더 잘 아는 사람이 있습니까? 리눅스 민트는 루트 권한 단축키를 허용하지 않나요? 아니면 sudoers.d에 스크립트를 등록할 때 실수를 한 걸까요? 미리 감사드립니다.

답변1

친구의 도움으로 마침내 문제를 발견했습니다. sudoers.d의 내 항목이 손상되었습니다. 실제로는 실제 사용자 이름 "xoric" 대신 "username"이라는 문자열이 포함되어 있습니다. 이는 일반적인 복사 및 붙여넣기 오류입니다.

해당 항목을 수정한 후 두 번째 시도는 제대로 작동했습니다. 이제 Ctrl+Alt+W를 누르면 두 개의 폴더가 생성됩니다(스크립트는 루트 권한으로 실행되며 비밀번호 프롬프트가 필요하지 않음).

관련 정보