다음 명령을 실행하고 싶습니다
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"
.