sftp가 grep 명령을 허용하지 않는 이유는 무엇입니까?

sftp가 grep 명령을 허용하지 않는 이유는 무엇입니까?
sftp> grep "hello" login.php
Invalid command.

저는 login.php가 포함된 디렉토리에 있습니다.

답변1

sftp단순한 파일 전송 도구: 다음 목록에 나열된 특정 명령 세트를 지원합니다.맨페이지. man sftp특정 sftp 버전에 대한 sftp 명령의 정확한 목록을 보려면 자신의 시스템에서 실행 하십시오 .

grep원격 파일에서 실행 하려면 다음 두 가지 중 하나가 발생해야 합니다.

  • 파일 전송 도구는 원격 파일을 로컬 파일 시스템으로 렌더링하고 필요한 경우 액세스한 각 파일의 내용을 컴퓨터로 전송할 수 있습니다. 그런 다음 시스템의 일반 grep유틸리티를 사용하여 콘텐츠를 검색할 수 있습니다. 이 sshfs도구는 바로 그렇게 할 수 있습니다. 분명히 파일 시스템은 sshfs실제 로컬 파일 시스템보다 응답 속도가 느립니다.

  • 또는 파일 전송 도구가 grep원격 시스템에서 명령을 실행하고 결과를 사용자에게 반환할 수도 있습니다. 그러나 파일 전송 도구는 grep원격 작업을 구체적으로 지원해야 하며 원격 서버도 해당 특정 작업을 지원하거나 로그인한 사용자로 임의 명령을 실행할 수 있도록 허용해야 합니다. 그러나 후자는 명령이 이미 수행하는 작업이므로 ssh명령이 해당 기능을 복사하는 것은 의미가 없습니다.sftp

또한 지원되는 작업 세트는 sftp파일 전송과 관련된 작업으로만 작업을 제한하도록 특별히 선택되었습니다. 이것의 가치는 원격 시스템 관리자가 사용자의 sftp액세스를 허용하지만 로그인 및 임의 명령 실행을 허용하지 않도록 선택할 수 있다는 것입니다.

사용자가 잘 알려져 있고 제한된 작업만 수행할 수 있는 경우 시스템 관리자(또는 보안 환경을 설계하는 시스템 설계자)는 사용자가 할 수 있는 작업과 할 수 없는 작업(발견한 경우)이 악의적인지 효과적으로 추론할 수 있습니다. 사용자가 전체 공개 명령줄 도구 세트에 액세스할 수 있는 경우 작업은 훨씬 더 어려워집니다.

답변2

모든 명령을 실행할 수 있는 권한이 있는 호스트에 sftp 폴더를 마운트할 수 있습니다. 여기서 필요에 따라 폴더를 조작할 수 있습니다.

관련 정보