Alex Clemmer created MESOS-3176:
-----------------------------------

             Summary: Replicate *nix permission logic in Windows using the NTFS 
ACL API.
                 Key: MESOS-3176
                 URL: https://issues.apache.org/jira/browse/MESOS-3176
             Project: Mesos
          Issue Type: Bug
          Components: containerization, stout
            Reporter: Alex Clemmer
            Assignee: Alex Clemmer


>From a forthcoming comment in stout/windows/permissions.hpp:

```
  // TODO(hausdorff): Support finer-grained permissions than using the ACL
  // permissions model instead of the DOS permissions model. Unifying the ACL 
permissions model with the *nix model of file permissions is a significant work 
item in itself, and 
  //
  // The permissions model currently supported is the (extremely primitive) DOS
  // model. The CliffsNotes version of the DOS permission model follows:
  //
  //   * There is one type of privilege: write privilege.
  //   * All files can be read
  //   * Therefore, there is no native notion of "User", "Group", or "Other"
  //     permissions..
  //   * There is no concept whatsoever of execute permissions; if a file can
  //     be read (and it definitely can), and if it's a binary, you have
  //     execute permissions.
  //   * All in all: the DOS model is arguably ok for situations where there is
  //     a single user in a location that can be considered "secure."
  //
  // The practical impact of this is that most of the permissions-oriented APIs 
in Stout will _pretend_ to set appropriate permissions on Windows, but mostly 
set them to "global writable" instead.
  //
  // This is clearly not the ideal permissions scenario for Mesos. The other
  // option is to use the NTFS Access Control List (ACL) API, and in the long
  // term we will want to transition to that. The CliffsNotes version of the
  // ACL permission model is as follows:
  //
  //   * An ACL is a list of security specifications (each specification is
  //     known as an "Access Control Entry") that describes the access model of
  //     an "object." An "object can be a process, a file, an event, or
  //     anything else that has a security descriptor.
  //   * Privileges can be granted by a process with required privileges.
  //   * The ACL model is very fine-grained: access can be granted to a user, a
  //     group, or "other", and can be split up by read, write, and execute
  //     permissions.
  //
  // BUT, and here is the kicker, the ACL model is dramatically more
  // complicated, and not worth doing in the MVP. Our goal in the future is to
  // find a more permanent solution; for now, we have a non-invasive Unix-based
  // permission model, and that will work for now.
```



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to