sudoers 파일의 구문 오류

sudoers 파일의 구문 오류

일반 사용자가 노트북의 키보드 백라이트를 켜거나 끄도록 하고 싶어서 /usr/bin/brightnessctl이렇게 했습니다.

visudo -f /etc/sudoers.d/grove

( grove은 내 사용자 이름이지만 여기서 중요한 것은 파일이 에 포함되어 있다는 것입니다 /etc/sudoers)

파일에는 이미 다음 줄이 포함되어 있습니다.

grove   ALL=(ALL) NOPASSWD: /usr/bin/light -A 5
grove   ALL=(ALL) NOPASSWD: /usr/bin/light -U 5

그래서 그냥 흉내내고 추가해 보았습니다.

grove   ALL=(ALL) NOPASSWD: /usr/bin/brightnessctl -d tpacpi::kbd_backlight s 2
grove   ALL=(ALL) NOPASSWD: /usr/bin/brightnessctl -d tpacpi::kbd_backlight s 0

그러나 visudo보고서를 구문 오류로 만듭니다.

/etc/sudoers.d/grove:3:59: syntaksfejl
grove   ALL=(ALL) NOPASSWD: /usr/bin/brightnessctl -d tpacpi::kbd_backlight s 2
                                                          ^~
/etc/sudoers.d/grove:4:59: syntaksfejl
grove   ALL=(ALL) NOPASSWD: /usr/bin/brightnessctl -d tpacpi::kbd_backlight s 0
                                                          ^~

( syntaksfejl덴마크어입니다 syntax error. 모든 것이 덴마크어로 말하도록 설정했습니다. 그렇게 작은 텍스트에 대해 영어 오류가 발생하도록 LANG다시 실행할 이유가 없습니다 .)LANG=C

여기에 문제가 있나요? 콜론(그리고 표시가 잘못되었습니다. 이는 그 뒤에 있는 TAB으로 인해 발생할 수 있습니다 grove). 그렇다면 명령을 어떻게 허용합니까? 내가 /usr/bin/brightnessctl사물에 대해 더 많은 통제권을 갖고 있음을 허용하고 받아들여야 합니까 ?

(중요하다면 Debian 12를 사용하고 있습니다)

답변1

@steeldriver가 댓글에서 지적했습니다.sudoers 매뉴얼의 "별칭" 섹션콜론을 a로 이스케이프해야 하며 \작동한다고 말합니다.

나는 어리석게도 설명서를 읽지 않고 내 방법을 인용하려고 헛되이 노력했지만 일반적으로 동일한 효과를 얻을 수 있었지만 말했듯이 \작동합니다.

관련 정보