비밀번호를 요구하지 않고 루트로 명령줄 프로그램을 실행하는 바탕화면 바로가기를 만드는 방법

비밀번호를 요구하지 않고 루트로 명령줄 프로그램을 실행하는 바탕화면 바로가기를 만드는 방법

sudo /usr/bin/ddcutil -d 1 setvcp 60 0xF암호를 요구하지 않고 실행하여 모니터 입력을 변경하는 바탕화면 바로가기를 만들려고 합니다 . 에 항목을 입력했습니다.sudoers.d디렉토리에 있고 명령이 터미널에서 실행되면 예상대로 비밀번호가 필요하지 않지만 바로 가기를 클릭하면 비밀번호를 묻는 메시지가 표시됩니다. 이 바로가기를 비밀번호 없이 실행하려면 어떻게 해야 합니까?

.desktop 파일:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Windows 10
Comment=Switch Display to Windows Virtual Machine
Icon=/usr/share/icons/windows-icon.png
Terminal=true
Exec=sudo /usr/bin/ddcutil -d 1 setvcp 60 0xF

sudoers 파일:

myusername ALL = NOPASSWD: /usr/bin/ddcutil

해결책여기gksu가 더 이상 사용되지 않고 사용 중이기 때문에 작동하지 않습니다.pkexec대신 답변 중 하나에서 제안한 대로 여전히 비밀번호를 묻는 메시지가 표시됩니다.

답변1

솔루션을 사용하는 것 같습니다pkexec정책 키트구성.이 답변PolicyKit 설정에 대한 자세한 내용을 다룹니다. 이는 비밀번호를 요구하지 않고 GUI 애플리케이션을 실행하는 데 적합하지만 대부분 그래픽이 아닌 애플리케이션에도 적용됩니다.

제 경우에는 .desktop 파일이 업데이트되어 대체되었습니다.sudo~와 함께pkexec.터미널=다음 중 하나로 설정할 수 있습니다.진실또는거짓:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Windows 10
Comment=Switch Display to Windows Virtual Machine
Icon=/usr/share/icons/windows-icon.png
Terminal=false
Exec=pkexec /usr/bin/ddcutil -d 1 setvcp 60 0xF

그런 다음 PolicyKit 항목을 다음 위치에 만들어야 했습니다./usr/share/polkit-1/actions/com.ubuntu.pkexec.ddcutil.policy:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
  "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
  "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>

  <action id="com.ubuntu.pkexec.ddcutil">
    <defaults>
      <allow_active>yes</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/ddcutil</annotate>
  </action>

</policyconfig>

/var/log/auth.log디버깅에 필요한 경우 PolicyKit 메시지가 기록되는 곳인 것 같습니다.

관련 정보