다음을 통해 해상도를 전환합니다.
sudo xrandr --output eDP-1-1 --mode "3840x2400"
sudo 없이 xrandr을 만드는 방법은 무엇입니까? 예를 들어 다음과 같이 할 수 있습니다.
xrandr --output eDP-1-1 --mode "3840x2400"
나는 video
그룹에 속해 있습니다. 나는 일반 파일에 내 비밀번호를 노출하고 싶지 않지만 xrandr
어떤 목적을 위해 일시적으로 루트가 자동으로 되는 일종의 시스템 스크립트를 만들고 싶습니다 .
(이 스크립트는 메뉴 표시줄의 토글 버튼을 클릭하면 호출되므로 실제로는 해상도를 감지하여 3840x2400과 1920x1200 사이를 전환하는 Python 스크립트가 됩니다.)
편집: 이상한 상황으로 인해 xrandr을 루트로 실행해야 한다고 생각합니다. 이는 nvidia-drm.modeset 커널 매개변수 또는 이와 유사한 것일 수 있습니다.모델 행이 존재하더라도 수동으로 다시 추가해야 합니다.. 이런 상황에 처하게 된다면 무엇을 조언해야 할지 잘 모르겠습니다. 자유롭게 의견을 남겨주세요. 어쨌든 재부팅 후 sudo 사용 요구 사항이 사라졌습니다. 나는 최고의 답변을 받아들입니다.
답변1
xrandr
아니요.sudo
사용자가 X 세션에 로그인한 경우 실행하여xrandr
화면 설정을 쿼리하고 변경할 수 있습니다./etc/sudoers
사용자(또는 사용자)가 비밀번호를 입력하지 않고 루트로 명령을 실행할 수 있도록 설정할 수 있습니다 . 이는 루트만 필요하고 다른 작업은 수행하지 않는 짧은 래퍼 스크립트와 함께 사용하는 것이 가장 좋습니다. 그런 다음 사용자는 루트로 스크립트를 실행할 수 있습니다NOPASSWD:
.가능하다면 이와 같은 래퍼 스크립트는 매개변수나 기타 사용자 제공 입력을 사용하지 않는 것이 이상적입니다. 사용자 입력이 불가피한 경우 필요한 작업을 수행하고 사용하기 전에 모든 입력의 유효성을 검사하기 위해 필요한 최소한의 단계를 수행해야 합니다(그리고 더 나은 보안을 위해 알려진 나쁜 것을 확인하는 대신 알려진 나쁜 것을 확인하고 거부해야 합니다). 그리고 그것들을 거부함) - 좋은 것들은 모두 거부함).
예를 들어
#!/bin/sh xrandr --output eDP-1-1 --mode "3840x2400"
예를 들어 로 저장하고
mode3840x2400.sh
실행 가능하게 만들고chmod
다음과 같은 내용을 추가합니다/etc/sudoers
(이 파일을 직접 편집하지 말고 를 사용하십시오visudo
).username ALL = NOPASSWD: /full/path/to/mode3840x2400.sh
또는 원하는 해상도 설정을 요청하는 매개변수를 허용하고 다른 모든 설정은 거부하는 래퍼 스크립트의 예는 다음과 같습니다. 인수가 제공되지 않으면 기본값은 1920입니다.
#!/bin/sh
res=${1:-1}
case "$res" in
1) xrandr --output eDP-1-1 --mode "1920x1200" ;;
2) xrandr --output eDP-1-1 --mode "3840x2400" ;;
*) echo "Error: unknown argument '$res'" > /dev/stderr; exit 1;
esac
그런데, 위에서 언급한 것처럼,xrandr
sudo
작업이 필요하지 않습니다- X에 로그인한 모든 사용자가 실행할 수 있습니다. 나는 이것을 루트로 실행할 수 있는 것에 대한 예로 사용하고 있습니다.