사용 가능한 sudo 권한이 있는 다른 사용자로 명령을 실행하십시오.

사용 가능한 sudo 권한이 있는 다른 사용자로 명령을 실행하십시오.

다음 명령을 실행하고 싶습니다

echo 1000 > /sys/class/backlight/intel_backlight/brightness

bash는 실제로 출력을 루트 소유 밝기 파일로 보내는 프로세스이기 때문에 아래와 같이 할 수 없습니다.

sudo echo 1000 > /sys/class/backlight/intel_backlight/brightness

그렇다면 이 명령을 어떻게 실행해야 할까요?

  • 루트 비밀번호를 묻는 메시지를 표시하고 싶지 않음
  • 루트로 로그인하지 않으려면 명령을 실행하고 종료하십시오.
  • 현재 사용자가 사용할 수 있는 sudo 권한을 사용하여 명령을 실행해야 합니다.

답변1

당신이 요구하는 것은 불가능합니다. 현재 프로세스는 루트로 실행되지 않으며 루트만 실행할 수 있습니다 setuid. 따라서 먼저 다른 프로세스를 루트로 시작해야 합니다(이 경우 setuid 실행 파일을 사용하여 sudo).

이것은 불가능한 것을 제거하여 귀하가 요구하는 것에 가장 가깝습니다.

echo 1000 | sudo tee /sys/class/backlight/intel_backlight/brightness

비밀번호를 묻는 메시지를 표시하지 않으려면 다음과 같은 줄을 추가합니다 /etc/sudoers( 를 사용하여 사용자 이름으로 visudo바꿈 ).rag

Cmnd_Alias BACKLIGHT = /usr/bin/tee /sys/class/backlight/intel_backlight/brightness, ! /usr/bin/tee /sys/class/backlight/intel_backlight/brightness *
rag ALL=(root) NOPASSWD: BACKLIGHT

답변2

이것도 작동합니다. 내 비밀번호를 묻는 메시지가 표시되어도 괜찮습니다.

sudo bash -c "echo 1000 > /sys/class/backlight/intel_backlight/brightness".

관련 정보