Ihr Kollege hat Recht, in dem Sinne, dass der RFC 959 von Oktober 1985 offenbar keinen speziell für Berechtigungsänderungen entwickelten Befehl enthält. RFC 959 enthält Angaben zu Befehlen zum Hochladen von Dateien ( RFC 959 Seite 30 enthält den Befehl "STOR" zum Speichern von Dateien), Herunterladen von Dateien (Seite 30 enthält den Befehl "RETR" zum Abrufen von Dateien) und optionale Erweiterungen wie MKD (Verzeichnis "make") ) und RMD (Verzeichnis entfernen). Der RFC stellt fest: "Es ist das Vorrecht eines Server-FTP-Prozesses, um Zugriffssteuerungen" "aufzurufen." (Nach meiner Lektüre des RFC glaube ich jedoch, dass die "Zugriffskontrollen", auf die Bezug genommen wird, mehr darauf abzielen, die Möglichkeit der Anmeldung mit einem Benutzernamen zu unterstützen und nicht auf die Idee zu verweisen, FTP zur Änderung der Berechtigungen zu verwenden Dateien.)
RFC 959, Seite 47, enthält eine Liste der Befehle, die in der FTP-Spezifikation von RFC 959 integriert sind. Ich habe mich eine Zeit lang gefragt, ob ich einen FTP-Server für eine bestimmte Plattform erstellen möchte. Ich habe jeden dieser Befehle durchgelesen. Ich habe auch einen Blick auf die IANA-Registrierung „FTP Commands and Extensions“ gerichtet, auf die im März 2010 RFC 5797 verwiesen wird . Ich erinnere mich nicht an einen dieser Befehle, der eine Möglichkeit zum Ändern von Berechtigungen bietet, außer einem:
RFC 959, Seite 33, hat den Befehl "SITE". (Einige FTP-Clients verfügen über einen lokalen Befehl mit dem Namen "QUOT" oder "quote", der schließlich einen SITE-Befehl an den FTP-Server sendet.) Grundsätzlich ist der Standard des SITE-Befehls, dass der Text an den FTP-Server gesendet wird Der FTP-Server entscheidet, was er damit machen soll. Mit diesem Befehl können Sie Dateiberechtigungen ändern, eine Site nach Dateien durchsuchen oder den FTP-Server neu starten. Theoretisch werden durch Senden des Befehls "HELP SITE" Details einiger Funktionen angezeigt, die über den Site-Befehl bereitgestellt werden. RFC 959 Seite 33 spezifiziert dies sogar:
"Die Art dieser Dienste und die
Spezifikation ihrer Syntax können in einer Antwort auf
den Befehl HELP SITE angegeben werden."
Die Herausforderung an diese Theorie besteht lediglich darin, dass der Befehl "HELP SITE" tatsächlich dazu führt, dass Text vom FTP-Server angezeigt wird, und dass unvollständige Dokumentation möglicherweise nicht alle verfügbaren Möglichkeiten dokumentiert.
Basierend auf der Antwort von Jonathan Leffler auf die Frage von knoti99 nach „chmod-Syntax in FTP“ können wir sehen, dass das klassische Programm „ncftp“ den Befehl „SITE CHMOD“ verwendet hat, um den Befehl „chmod“ von ncftp zu implementieren, und dass diese Funktion nicht von unterstützt wird alle FTP-Server.
Noch eine Randbemerkung, wenn ich den FTP-Teil dieser Antwort vervollständige: FTP ist sehr schnüffelig. Im Grunde meine ich damit, dass FTP Aktionen mit "Klartext" durchführt. Wenn Sie "Packet Sniffing" ("Packet Capturing") - Software wie tcpdump oder Wireshark verwenden, können Sie sehen, was mit FTP passiert. Wenn Sie versuchen, eine Datei zu übertragen, bei der es sich um eine kleine Textdatei handelt, und sehen, was im Netzwerkverkehr passiert, sind die Ergebnisse wahrscheinlich leicht zu verstehen. Mit einem solchen Ansatz könnten Sie Berechtigungen ändern und sehen, welche Befehle die Software tatsächlich verwendet. Ich weiß, dass die Einrichtung etwas zeitaufwändiger sein kann, weshalb diese Antwort viele einfachere Informationen lieferte. Die Kenntnis dieses Prozesses kann jedoch hilfreich sein, wenn Sie sich fragen, was während des FTP-Vorgangs passiert Kommunikation.
(Ich habe diese Antwort bearbeitet, um eine Antwort auf einen anderen Teil der Frage hinzuzufügen.)
Es wurde mir nahegelegt, dass der Client wahrscheinlich ein chmod über SSH ausführt, dh die Berechtigungen nachträglich setzt.
Ich denke, das ist eine nette Vermutung, obwohl ich glaube, dass dies nicht genau ist, wenn es um FTP geht. Tatsächlich beschreibt diese Vermutung wahrscheinlich genau den genauen Prozess, der verwendet wird, wenn die SFTP- und SCP-Protokolle verwendet werden. Da beide Protokolle auf SSH basieren, kann der Befehl "chmod" unter Verwendung derselben SSH-Verbindung gesendet werden, die auch für den Rest der verschlüsselten Verbindung verwendet wird. Nach meinem Lesen dieser Protokolle glaube ich tatsächlich, dass Dateiberechtigungen normalerweise genau festgelegt werden, wenn SFTP (und SCP, wenn dies auch das Festlegen der Dateiberechtigungen unterstützt) festgelegt werden.
Die Art und Weise, wie dies normalerweise mit dem FTP-Protokoll gehandhabt wird, ist jedoch eine ganz andere Geschichte, wie ich gerade beschrieben habe. Wenn Sie das FTP-Protokoll (Klartext) verwenden, ist dies technisch möglich, aber eher unwahrscheinlich, dass SSH zur Weiterverfolgung verwendet wird. (Wenn Software zur Unterstützung von SSH in der Lage ist, unterstützt sie im Allgemeinen auch SFTP oder SCP oder beides. Daher wird die Unterstützung des alten FTP-Protokolls normalerweise so ausgelegt, dass die Komplexität der verschlüsselten Kommunikation nicht als Teil des Systems verwendet wird verarbeiten.)