특정 날짜와 확장자를 가진 파일을 삭제하는 방법

특정 날짜와 확장자를 가진 파일을 삭제하는 방법

짧고 간단하게: 내 호스팅 구독 중 하나가 해킹당했습니다.

다음 명령을 실행했습니다. find path-to-folder/ -mtime -7 -name "*.php" –print 이 명령을 통해 1월 30일에 추가된 약 11페이지의 악성 코드가 생성되었습니다. 이 항목을 일일이 다 삭제하는 것이 아니라, 스크립트를 생성하거나 명령어를 생성하여 삭제 작업을 한 번만 수행하도록 하세요.

다음 작업 중 하나를 수행하고 싶습니다.

  1. 연결된 .txt 파일에 입력한 경로를 기반으로 파일을 삭제하는 스크립트를 만듭니다. 또는
  2. 특정 날짜 범위를 기준으로 특정 폴더에서 "*.php"라는 이름의 모든 파일을 삭제하는 명령은 하나입니까? 위 명령을 약간 수정하면 됩니다. 가능하다면? ?

답변1

  1. Poisson Aerohead의 대답은 기본적으로 좋습니다. 약간만 수정하면 파일 이름 구분 기호로 NULL을 사용하는 것이 좋습니다.

  2. 하나의 명령으로 이 작업을 수행하려면 간단히 -print를 다음으로 변경하면 됩니다.-삭제. -delete 스위치는 마지막 스위치여야 합니다. 그렇지 않으면 나머지 스위치에 대해 확인하기 전에 파일이 삭제됩니다.

    폴더 경로 찾기/ -mtime -7 -name "*.php" – 삭제

답변2

또한 짧고 달콤합니다.cat list | xargs rm

이는 모든 악성 .php 파일이 포함된 "list"라는 파일이 있고 .php 파일이 포함된 디렉터리에 있다고 가정합니다(명확하게 설명하자면, 이미 이해하셨을 것입니다).


파일 이름에 개행 문자가 포함되어 있으면 실행하는 것이 위험합니다., 특히 악의적인 적에 의해 구축되었다는 것을 이미 알고 있기 때문에 더욱 그렇습니다. 텍스트 파일에 파일 이름 목록이 있는 경우 목록을 미리 확인하여 보관하려는 파일을 삭제하는 줄이 없는지 확인할 수 있습니다.

또한 공격자가 이 호스트에 악성 PHP 스크립트를 확보하는 데 성공한 경우,이것이 가장 큰 문제가 아닐 수도 있습니다.. 나는 당신이 묻는 질문에 대답하는 것뿐입니다. @soubunmei는 나보다 find 명령을 더 잘 알고 있기 때문에 더 나은 답변을 주었지만두 답변 모두 안전을 보장하지 않습니다.. 명확하지 않았다면 죄송합니다. 저의 부주의한 언어를 지적해주신 @soubunmei와 @MichaelHomer에게 감사드립니다. 악의적인 행위자가 호스트에서 높은 권한을 얻었을 수 있다고 생각되면 사이버 보안 전문가에게 문의해야 합니다.


나는 개인적으로 이 작업을 수행하는 좋은 "연장 및 날짜" 기반 방법이 있는지 의심합니다. 요청한 대로 일부 사람들은 이 방법이 더 우아하다고 생각할 수도 있지만 이미 목록이 있으므로 사용하지 않으시겠습니까?

나는 다음 줄을 포함하는 "list"라는 파일에서 이것을 테스트했습니다.

file1
file2

이 파일들은 내 데스크탑에 있습니다. 예상대로 작동합니다. 나강하게먼저 작은 단계에서 테스트하여 성능을 확인하고 디렉터리를 백업하는 것이 좋습니다.앞으로많은 수의 파일이 삭제됩니다. 하드 드라이브 공간은 프로그래머 시간보다 훨씬 저렴합니다!

관련 정보