README.TXT

How to Put a DACL on Floppy Drives 


SUMMARY
=======

There is no way to put a DACL on the floppy drives or on
the COM ports with REGEDT32, or using the Control Panel or other
part of the user interface. Also, there is no way to use the
Win32 API to put a DACL on the floppy drives or on the COM ports
that survives reboots.

However, the SD_FLPPY sample does put DACLs on the floppy drives or on
the COM ports that survive logoff and logon; that is, these DACLs
are on the floppy drives or on the COM ports until the next reboot.
This sample is a good starting place for anyone writing code to apply DACLs.

A version of this sample program can be installed as a service, so
that each time the machine boots up the DACLs are automatically re-applied.

This sample is not a supported utility.

MORE INFORMATION
================

There are possibly as many desired user interfaces to this sort of
functionality as there are people thinking about this, so it is
not a purpose of this sample (or the service variation of
it) to present an incredibly cool user interface to how the
DACLs get applied. A very simplistic approach is taken to the
user interface.

To run
------

Type sd_flppy to lock the \\.\A: and \\.\B: devices.

You can optionally put SD_FLPPY.EXE in the Startup group or a logon script.

Notes
-----

The version of this program that is packaged as a service is
in this same directory and is built along with SD_FLPPY.EXE by
the same makefile.

The packaged-as-a-service approach might better suit people who
need to change the DACL on the floppy drives without requiring a
reboot or logoff. After installing the FLOPLOCK service on
the machine, the client application, CHGFLPSD can be used over the
network to lock, unlock or query the floppy-locked-state of any
machine where the FLOPLOCK service is running.

So, this packaged-as-a-service approach might better suit people
that would like to be able to inquire over the net what the
DACLs are on the floppy drives of particular machines (to check
or audit them). This approach might better suit people that
would prefer that the DACLs be applied as the system boots up so
the DACLs are applied before any user has logged on at the keyboard.

The packaged-as-a-service approach is more aligned with the notion
of protecting the floppies as a resource on a particular
_machine_ (regardless of who if anyone is logged on), whereas
the SD_FLPPY approach (running an .exe at logon time) is
more along the lines of keeping a particular user from using
the floppies on any machine that that user might use. However,
once the user has logged onto the machine and locked the
floppies with SD_FLPPY the floppies will stay locked until
reboot. Of course a utility could easily be written that could
run in the startup group of a different authorized user to force the
floppies on any machine this user logs onto to be unlocked.

As noted above, the FLOPLOCK service is built by the single
makefile in this directory. FLOPLOCK.EXE is the main element of
the packaged-as-a-service version. FLOPLOCK installs as a service, using
INSTSRV.EXE. INSTSRV.EXE, as well as CHGFLPSD.EXE, is also built by the
single makefile in this directory

Run "instsrv" to get help on the switches to use when running
INSTSRV.EXE to install the service.

FLOPLOCK creates a named pipe which CHGFLPSD opens to pass
over the lock/unlock/query operations to a particular machine
running FLOPLOCK.EXE - the named pipe is at all times protected
by an Admins-only DACL

Run "chgflpsd" to get help on the switches to use when running
CHGFLPSD.EXE.