루트 비밀번호를 묻는 (X) 대화 상자가 있는 Bash 스크립트(kdesu 대체)

루트 비밀번호를 묻는 (X) 대화 상자가 있는 Bash 스크립트(kdesu 대체)

(X)dialog를 제대로 실행하기 위한 스크립트로 사용하고 있지만 특정 명령을 실행하려면 루트 권한이 필요합니다. 스크립트는 .desktop 파일에서 실행되므로 터미널은 사용자에게 표시되지 않습니다. 예를 들어 여기

#!/bin/bash
Xdialog --msgbox "Welcome" 0 0
touch /root/testfile
Xdialog --msgbox "All OK" 0 0

명령 touch이 실행되지 않습니다. 한 가지 해결책은 다음을 사용하는 것입니다.kdesu

kdesu touch /root/testfile

그러나 이 접근 방식에는 두 가지 문제가 있습니다. 사용자는 각 명령에 대해 암호를 제공해야 하며 kdesu 창은 나머지 창과 동일한 주제를 따르지 않습니다.

사용자가 sudoer가 아닌 루트 비밀번호를 제공하기를 원합니다.

비슷한 스크립트를 찾았습니다여기이지만 실제 명령이 이전과 같이 비밀번호를 허용하지 않기 때문에 스크립트에 적용할 수 없습니다 sshpass.

답변1

한 가지 방법은 su스크립트 시작 부분에서 수행하는 것입니다. 사용자는 스크립트 시작 시 루트 비밀번호를 한 번만 입력하면 됩니다. 그러면 루트 권한 없이 명령을 실행할 수 있습니다 su [username] -c [your command not to be executed with root privileges].

그러나 여기에서는 대화 상자를 사용하여 비밀번호를 요청할 수 없습니다.

관련 정보