Ftp-WG: MFXX questions
Wolfgang Zekoll <[email protected]> Sat, 7 Feb 2004 10:08:17
| Newsgroups | gmane.ietf.ftpext |
|---|---|
| Message-ID | <[email protected]> |
David,
after having read the MFXX-draft I started to implement the features
mentioned there into my own server. This brought me some some questions.
1. mlst-16 states that the MDTM command is only defined on files, not on
non-files like directories. What about MFMT and MFF? Sometimes the draft
mentions "file" and sometimes "object in the NVFS", see e.g. section 4.1.
2. Your draft shows (allows?) only the modification of the traditional UNIX
mode bits, what about the sticky-bit set?
3. I can imagine situations where I don't want remote users to set the
file's execution bit for uploaded files, even if changing permissions in
general is allowed. Such a server receives then a "MFF UNIX.mode=775
some.file" which is not allowed or, depending on the point of view, not
supported. It can now be argued that
(A) the client's permissions are not enough for the operation which
results in "550 no access",
(B) the MFF command is not implemented for this particular argument:
"504 not implemented for this parameter".
On the other hand, the "no-x-bit" configuration could be seen as some kind
of "missing granularity" (as it could happen for timestamps) which whould
then return a
(C) "213 UNIX.mode=664 some.file"
showing the client the file's real mode after the operation.
Please take these as "questions only", I have no preferences for their
answers. It's just that, since we are
discussing this draft, it should perhaps be defined in some way.
Regarding the current modification/creation time discussion, (3C) could be
also interesting. As said above, (3C) is already in effect for the MFMT
and MFCT commands. But time resolution is mentioned only as one
example. Another example could be the OS's limitation that creation time
can never be newer than a file modification time. Generalizing such
OS-dependent cases, the meaning of the 213 response code would become
something like
Even if the client receives a 213 response it MUST|SHOULD parse
the return value given in the response to see if this is (or
comes near to) what the client wants.
This is not very difficult since the server's response lists the file's
real attributes (or facts) in the same format as they were requested by the
client.
But to make the create/modify time thing even more difficult, the question
if such things are allowed or not, could be filesystem- and not
OS-dependent (as the time granularity already is: even a Linux system
doesn't have time resolution down to a second on a real FAT
filesystem). So depending on the FTP server's file space (the filesystem
mounts) operations might work or fail to some degree. And in the case of
the MFMT time resolution even a partial failure could (has to be) good
enough for the client. So what I'm suggesting here is
C> MFF Create=20040204105005;Modify=20030926053600; some.file
S> 213 Create=20030926053600;Modify=20030926053600; some.file
in case the server is not able to set a file's creation time after the
modification time. It's now left to the client if this is ok or
not. Perhaps a new response code should be defined:
219 approximate operation: the operation might not have been
carried out to the client's full satisfaction, the client
should examine the values listed in the response.
Regards
Wolfgang Zekoll
P.S.: Anyway, now that I'm thinking about it, why should an FTP draft/RFC
define that a file's creation time is always newer than it's modification
time? Even if there are OSes or filesystems that could (thinking of Alun's
archive example: must or simply does) allow this. I see this as OS or
client business, but not as something for an FTP specification.