Maldet 스캐닝 명령의 단일 물음표에 관하여

Maldet 스캐닝 명령의 단일 물음표에 관하여

다음 명령이 있습니다.

maldet -b --scan-all /home?/?/public_?

물음표가 왜 필요한지, 특히 두 경로 사이에 있는 단일 물음표가 왜 필요한지 명확하지 않았습니다. 그래서 물음표를 사용했습니다.man maldet 하고 읽었습니다.

-a, --scan-all 경로

경로의 모든 파일을 검사합니다(기본값: /home, 와일드카드: ?) 예: maldet -a /home/?/public_html

내 질문:

왜 와 ?사이에 추가가 필요한가요?/home?public_? ?

/home?이 질문의 대안적인 버전은 " 및 의 조합이 " under public_?의 모든 인스턴스를 찾는 경우 , 왜 그들 사이에 추가 항목이 필요한가?"를 의미할 수 있습니다.public_/home?

답변1

나는 Maldet이 결국 호출하는 명령의 소스를 추적할 수 없었지만 scan, Maldet은 주어진 경로를 그대로 해당 scan명령에 전달하므로, 내 가정은 그 명령을 처리하는 추가 단계일 것입니다.? , 더 나아가서 뭔가가 이를 와일드카드 자체로

해당 예에서 와일드카드의 예상 목표는 다음과 같은 경로를 수집하는 것입니다.

  • /home/user1/public_html
  • /home/user2/public_ftp

하지만:

  • /home/public_html

... 즉, 경로 요소가 /home/public_html또는 사이에 존재하도록 요구합니다./public_anything 사이에 경로 요소가 존재하도록 요구합니다 .

하지만 다음과 같은 maldet형식의 경로가 있는 경우에는 명령 에 대한 와일드카드 경로를 이스케이프하거나 따옴표로 묶어야 합니다./home/(single-character)/public_(single-character)

  • /home/a/public_a

?그러면 쉘은 을 maldet 와일드카드 코드에 전달하는 대신 해당 경로(또는 일치하는 경로 중 하나)로 확장됩니다 . 단일 문자 경로가 존재하지 않는 한 따옴표가 없는 경로를 사용하여 실수로 "행운"을 얻을 수 있습니다. 왜냐하면 일치하는 경로(셸에서 확인)가 없으면 - ?포함 문자열을 maldet 명령에 전달하기 때문입니다. . 일치하는 경로가 존재하면 쉘은 해당 경로로 확장하고 ?, Maldet은 더 이상 (귀하의) 와일드카드를 볼 수 없습니다.

관련 정보