8.1 Scope and Roles

This chapter defines the editing channel: the interface by which a program has a person edit the Security Descriptor of an object the program holds, in a dialog drawn by another program, the editor.

The object may be of any kind that has a Security Descriptor — a file, a registry key, a service. The editor knows none of them. What it is told is what a person needs in order to edit the descriptor: what the object is called, what kind of thing it is, what its rights are called, and the descriptor itself. What it answers with is a descriptor.

8.1.1 Roles #

The requester is the program whose object it is. It starts the editor, reads the object's descriptor, tells the editor about it, and applies each descriptor the editor sends back. It holds the object, and whatever right changing the descriptor takes, throughout.

The editor draws the descriptor for a person to change, on the desktop the requester is on, and sends back what they apply. It holds no handle to the object and needs no right over it. It changes nothing itself.

The split is deliberate. The party that can change the object is the one that already holds it, and it applies exactly what it is sent, so an editor serves every kind of object without ever being trusted with one. A requester gains a full editor without containing one.

8.1.2 What this chapter leaves to others #

How the editor draws its dialog, and on which desktop, is the editor's own design and that desktop's. On a GXWI desktop the editor is an app like any other, found by the environment it inherits from the requester.

The layout of a Security Descriptor, of the access masks it carries and of its entries is PCDS §5's. This chapter carries descriptors and says nothing about their contents beyond which components are applied.

How a requester reads and applies a descriptor is its own concern, and depends on the kind of object. A requester SHOULD apply through the same handle it read through, so that what is applied reaches the object that was shown, wherever it has gone in the meantime.

Edit this page