> I'm moving this case to waiting need spec. Try as I have,
> the project team has still failed to provide a full spec.
> I believe the same to be true of the approved PSARC/2005/691.
> When the project team provides a full spec, including missing
> information from PSARC/2005/691, I'll restart the case.
>
> I believe the crux of the issues are in the spec, not the
> architecture.
I'd like to restart this case. The project team has provided updated
interfaces, in particular list_devices(1) exports the "-a" and "-w" options
for providing a stable form of output. That form is a list key=value pairs.
This work was really part of PSARC/2005/691 Trusted Extensions for Device
Allocation, however never exposed nor documented there. It represents
an Uncommitted interface.
Three ON non-consolidation consumers of the device allocation commands
have been identified when TX is configured: Trusted CDE, Trusted JDS,
and SunRay. A prototype contract and an updated list_devices(1) man
page are in the case directory. Again, '~' in the first column represent
missing changes from 2005/691. '+', '-', and '|' represent changes for this
case. I've only included the new changes relevant to -a and -w below.
Other than SunRay identifying the need for the "class" and "xdpy" key words,
this case is unrelated to SunRay. SunRay is just one consumer.
I believe the issue of device_clean(5) multiple success codes seems to
have converged with no change.
There is general agreement that device allocation in Solaris without
TX needs to be improved, however that's not this case.
I've extended the timer to 15 June 2007.
Gary..
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
list_devices(1):
~~~~~~~~~~~~~~~~~~~~~~
SYNOPSIS
~ list_devices [-s] [-U uid] [-z zonename] [-a [-w]]
| [-l | -n | -u] [-c dev-class | device]
The following options are supported if the system is config-
ured with Trusted Extensions:
-a Lists attributes like authorizations, clean-
ing programs and labels associated with a
~ device. The list is a single line of semicolon
~ (;) separated key=value pairs per device in
~ the format:
~ device=<device-name>;type=<device-type>;\
~ auths=<auths>;clean=<device-exec>;\
~ <device-attributes>;\
~ files=<device-list>
~
~ where
~ device-attributes is the contents of the reserved1
~ field of device_allocate(4). (Note, that field is
~ colon (:) separated.) See device_allocate(4) for
~ a description of these attributes and their format.
~
~ The -a output has the following keys:
~
~ device Specifies device name. Value is
~ device-name as described in
~ device_allocate(4).
~ type Specifies device type. Value is
~ device-type as described in
~ device_allocate(4).
~ auths Specifies list of authorizations.
~ Value is auths as described in
~ device_allocate(4).
~ clean Specifies device cleaning script.
~ Value is device-exec as described
~ in device_allocate(4).
~ files Specifies device file paths. Value
~ is device-list as described in
~ device_maps(4).
-d [dev-type] Displays the system-supplied default attri-
butes for the device types managed by device
allocation. If dev-type is specified, it
lists the default attributes for only that
device type.
~ -w This option may be used along with -a to list
~ the current owner of the device as the key value
~ pair owner= <value>. Value is the uid of the
~ current owner of the device. If the device
~ is unallocated, value is "/FREE". If the device
~ is in error state, value is "/ERROR". This option
~ also suppresses any diagnostic output.
-z zonename When specified with the -l option, lists only
those non-allocated devices whose label range
includes the label of the zonename, and of
the allocated devices, only those that are
allocated at the same label as that of
zonename.
When specified with the -n option, lists only
those non-allocated devices whose label range
includes the label of the zonename.
When specified with the -u option, lists only
those devices that are allocated at the same
label as that of zonename.
EXAMPLES
~ Example 1 Listing all devices available to the caller for
~ allocation.
~ % list_devices -l
~ device: audio type: audio \
~ files: /dev/audio /dev/audioctl /dev/sound/0 /dev/sound/0ctl
~
~ Example 2 On a system configured with Trusted Extensions, listing
~ attributes of all devices available to the caller for
~ allocation.
~
~ % list_devices -al
~ device=audio1;type=audio;\
~ auths=solaris.device.allocate;\
~ clean=/etc/security/lib/audio_clean;\
~ minlabel=admin_low:maxlabel=admin_high;\
~ files=/dev/audio1 /dev/audio1ctl /dev/sound/1 /dev/sound/1ctl
~
~ Example 3: On a system configured with Trusted Extensions, listing
~ attributes including the device owner of all devices
~ allocated to the user.
~
~ % list_devices -auw
~ device=audio2;type=audio;auths=solaris.device.allocate;\
~ clean=/etc/security/lib/audio_clean;\
~ minlabel=admin_low:maxlabel=admin_high:zone=public;\
~ owner=1234;\
~ files=/dev/audio2 /dev/audio2ctl /dev/sound/2 /dev/sound/2ctl
EXIT STATUS
The following exit values are returned:
| 0 Success.
+ 20 No entry for specified device.
+ Other values General error
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
___________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Availability | SUNWcsu |
|_____________________________|_____________________________|
| Interface Stability | See below. |
|_____________________________|_____________________________|
| The invocation is Uncommitted. The options are Uncommitted.
| The output of the -a and -w options is Uncommitted. All other
| output is Not-an-interface.