sudoers(5)
맨페이지에는 sudoers 파일에 대한 명령줄 인수에 쉘 스타일 와일드카드(메타 문자 또는 glob 문자라고도 함)를 사용할 수 있다고 나와 있습니다. 그것들은 *
, ?
, [...]
그리고 입니다 [!...]
.
내 생각은 정규식 스타일 로 뭔가를 사용 하는 것 입니다 /path/to/command -a[v]*
. 그러나 이것은 작동하지 않습니다.command -a
command -av
command -avvv...v
-v
tcpdump
다양한 양의 콘텐츠를 여러 번 /path/to/command -a -v
추가하지 않고 이를 수행할 수 있는 방법이 있습니까 ?sudoers
-v
답변1
에서 시작하다버전 1.9.10, sudoers
파일은 POSIX 확장 정규식을 지원합니다. 매뉴얼에 따르면 다음과 같이 원하는 것을 얻을 수 있습니다.
/path/to/command ^-av*$
1.9.10 이전 버전에서는 sudoers
매뉴얼 페이지에서 이 기능이 지원되지 않는다는 점을 분명히 밝혔습니다. 매뉴얼 페이지의 주석은 fnmatch()
일치를 수행하기 위해 시스템 기능을 사용함을 나타냅니다 . Linux/glibc 기반 시스템에서는 fnmatch()
정규 표현식과 표현 기능이 비슷하지만 구문이 다른 확장 와일드카드 형식을 사용할 수 있습니다.
sudo
따라서 sudo가 fnmatch를 호출하는 위치를 찾아 확장 구문을 지원하도록 다시 빌드 할 수 있어야 하는 경우 FNM_EXTMATCH
플래그 매개변수와 #define _GNU_SOURCE
이를 호출하는 파일의 맨 위에 추가하세요.
물론 이렇게 하면 suid 바이너리의 수동 패치 버전을 실행하게 되므로 주의하세요.