* Charles Bailey <[EMAIL PROTECTED]> [2008-12-10 03:15]:
> It may well be that a fine-grained interface isn't practical,
> but perhaps there are some basics that we could implement, such
> as
>
> - set owner of this thing
> - (maybe) set group of this thing
> - give owner|everyone|?some-group the ability to read
>   from|write to|remove|run this thing
> - tell me whether any of these is possible
> - make the metadata for this thing the same as the metadata for
>   that thing
> - tell me when this thing was created|last updated

There are many problematic suggestions here. Some examples:

• Unix does not track file creation datetime at all.

• The concept of making a file runnable doesn’t even exist on
  Windows: that property is derived from the filename extension.

• Delete permission on a file is a concept that doesn’t exist on
  Unix. To be able to delete a file, you instead need write
  permission on the directory it resides in.

Furthermore, in Win32, files and directories can inherit
permissions, so the fact that a file has certain effective
permissions does not mean that these permissions are set on
the file itself. But if you set them on the file itself, you
dissociate it from the inheritance chain. So reading permissions
and then setting them the same, without changing anything, can
still have unwanted side effects. Or if you try to make the API
smart, and so make it set permissions only when they constitute
a change from the effective permissions, then conversely the user
no longer has a way to dissociate the file from iheritance if
that *is* what they wanted. So the concept of inheritance must
be exposed explicitly.

This is the primary issue I was thinking of when I said that some
differences between Win32 and Unix have such pervasive effects
that it seems impossible to provide even a rudimentary abstract
interface.

Regards,
-- 
Aristotle Pagaltzis // <http://plasmasturm.org/>

Reply via email to