현재 일부 파일을 원격 서버에 업로드하기 위해 매우 제한된 FTP 클라이언트/어댑터를 사용해야 합니다. 제한적이라고 말한 이유는 결과 파일이 권한 000을 사용하여 원격 서버에 저장되고 다른 클라이언트와 달리 권한을 구성할 방법이 없는 것처럼 보이기 때문입니다. (저는 WinSCP가 이 작업을 수행할 수 있다는 것을 알고 있습니다.)
나는 동료로부터 FTP가 파일 권한과 관련하여 완전히 불가지론적이며 단순히 파일 데이터를 전송한다는 말을 들었습니다. 이것이 맞다고 가정하면 WinSCP와 같은 클라이언트는 원격 서버에서 파일의 권한을 어떻게 설정합니까? 클라이언트가 SSH를 통해 chmod를 실행할 가능성이 높다는 제안이 있었습니다. 즉, 사실 이후에 권한을 설정하는 것이었습니다.
답변1
1985년 10월의 의미에서 당신의 동료가 옳습니다.RFC 959권한 변경을 위해 특별히 설계된 명령을 제공하지 않는 것 같습니다. RFC 959는 파일 업로드 명령 사양을 제공합니다(RFC 959 30페이지파일을 저장하는 "STOR" 명령이 있음), 파일 다운로드(30페이지에는 파일을 검색하는 "RETR" 명령이 있음), MKD(디렉토리 만들기) 및 RMD(디렉토리 제거)와 같은 선택적 확장이 있습니다. RFC는 "액세스 제어를 호출하는 것은 서버-FTP 프로세스의 특권"이라고 명시하고 있습니다. (그러나 RFC를 읽은 결과, 언급된 "액세스 제어"는 사용자 이름으로 로그인하는 기능을 지원하는 것에 관한 것이지 FTP를 사용하여 권한을 변경하는 아이디어를 언급하려는 의도는 아니라고 생각합니다. 파일.)
RFC 959 47페이지RFC 959의 FTP 사양에 내장된 명령 목록이 포함되어 있습니다. 한동안 특정 플랫폼용 FTP 서버를 만드는 것이 궁금했고 해당 명령을 각각 읽어 보았습니다. 나도 슬쩍 살펴봤어IANA "FTP 명령 및 확장" 레지스트리, 2010년 3월 기준으로 언급됨RFC 5797. 다음 중 하나를 제외하고는 권한을 변경하는 방법을 제공하는 명령이 기억나지 않습니다.
RFC 959 33페이지"SITE" 명령이 있습니다. (일부 FTP 클라이언트에는 "QUOT" 또는 "quote"라는 로컬 명령이 있는데, 이는 결국 FTP 서버에 SITE 명령을 보냅니다.) 기본적으로 SITE 명령의 표준은 텍스트가 FTP 서버로 전송되고, FTP 서버는 이를 어떻게 처리할지 결정합니다. 이 명령을 사용하면 파일 권한 변경, 사이트에서 파일 검색, FTP 서버 재부팅 등의 작업을 수행할 수 있습니다. 이론적으로 “HELP SITE” 명령을 보내면 사이트 명령을 통해 제공되는 일부 기능의 세부 정보가 표시됩니다. RFC 959 페이지 33에는 다음과 같이 명시되어 있습니다.
"이러한 서비스의 성격과
구문 사양은
HELP SITE 명령에 대한 응답으로 명시될 수 있습니다."
이 이론의 문제점은 "HELP SITE" 명령이 실제로 FTP 서버의 텍스트를 표시하고 불완전한 문서가 실제로 사용 가능한 모든 단일 가능성을 문서화하지 않을 수 있다는 것입니다.
기반"FTP의 chmod 구문"에 관한 Knoti99의 질문에 대한 Jonathan Leffler의 답변, 우리는 고전적인 "ncftp" 프로그램이 "SITE CHMOD" 명령을 사용하여 ncftp의 "chmod" 명령을 구현했으며 이 기능이 모든 FTP 서버에서 지원되지 않았음을 알 수 있습니다.
이 답변의 FTP 부분을 완료하면서 한 가지 추가 참고 사항: FTP는 냄새를 잘 맡을 수 있습니다. 기본적으로 이것이 의미하는 바는 FTP가 "일반 텍스트"를 사용하여 작업을 수행한다는 것입니다. tcpdump 또는 Wireshark와 같은 "패킷 스니핑"("패킷 캡처") 소프트웨어를 사용하면 FTP에서 어떤 일이 일어나는지 확인할 수 있습니다. 작은 텍스트 파일인 파일을 전송하려고 시도하고 어떤 네트워크 트래픽이 발생하는지 확인하면 결과를 이해하기가 매우 쉬울 것입니다. 이러한 접근 방식을 사용하면 권한을 변경하고 소프트웨어가 실제로 어떤 명령을 사용하고 있는지 확인할 수 있습니다. 설정하는 데 시간이 조금 더 걸릴 수 있다는 것을 알고 있으므로 이 답변은 얻기 쉬운 세부 정보를 많이 제공했지만 FTP 중에 발생하는 다른 세부 정보가 궁금하다면 이 프로세스에 대해 아는 것이 도움이 될 수 있습니다. 연락.
(질문의 다른 부분에 대한 응답을 추가하기 위해 이 답변을 편집했습니다.)
클라이언트가 SSH를 통해 chmod를 실행할 가능성이 높다는 제안이 있었습니다. 즉, 사실 이후에 권한을 설정하는 것이었습니다.
나는 그것이 좋은 추측이라고 생각합니다. 비록 FTP에 관해서는 정확하지 않다고 생각하지만. 실제로 그 추측은 아마도 SFTP 및 SCP 프로토콜이 사용될 때마다 사용되는 정확한 프로세스를 정확하게 설명하는 것입니다. 두 프로토콜 모두 SSH를 기반으로 하기 때문에 "chmod" 명령은 나머지 암호화된 연결에 사용되는 것과 동일한 SSH 연결을 사용하여 전송될 수 있습니다. 해당 프로토콜을 읽은 결과 SFTP(및 파일 권한 설정도 지원하는 경우 SCP)를 사용할 때 실제로 파일 권한이 일반적으로 설정되는 방식과 정확히 일치한다고 생각합니다.
그러나 이것이 일반적으로 FTP 프로토콜로 처리되는 방식은 앞서 설명한 것처럼 상당히 다른 이야기입니다. 일반 텍스트인 FTP 프로토콜을 사용하는 경우 기술적으로는 가능하지만 SSH를 사용하여 후속 작업을 수행할 가능성은 거의 없습니다. (소프트웨어가 SSH를 지원할 만큼 능력이 있다면 일반적으로 SFTP나 SCP 또는 둘 다를 지원합니다. 결과적으로 이전 FTP 프로토콜에 대한 지원은 일반적으로 암호화된 통신의 복잡성이 암호화된 통신의 일부로 사용되지 않도록 설계됩니다. 프로세스.)