Re: Lockdown stuff



As a follow up to what George has been working on, I want to get this
discussion going again. I have been looking into further locking down the
desktop in various areas, my approach was to take a list of tasks that I would
like to achieve and see what could be done within Gconf that would enable us to
acheive these tasks.

A number of new Gconf keys need to be created and I propose that these be
kept in one location, makes identifying keys used for lockdown so much simpler
if they are in one place, such as :

    For General Desktop Lockdown keys :
        /desktop/gnome/lockdown/<lockdown_key>

    For specific application lockdown keys :
        /desktop/gnome/lockdown/<app>/<lockdown_key>

I have split the tasks into sections :

1. Nautilus
    - Restrict a user from removing/adding/moving/renaming or accessing the
      properties of desktop icons.

    New keys :
	
        /desktop/gnome/lockdown/nautilus/lockdown_desktop_icons    boolean
        /desktop/gnome/lockdown/nautilus/icons_to_lockdown         list/string

    If lockdown_desktop_icons is set then basically all default icons on
    the desktop are locked down, a user cannot remove/rename/move them and
    they cannot add more icons.

    Basically involves hiding the menu items Rename, Move To Thrash, Move to
    Thrash. And for adding new items, restrict dropping, and the menu items
    New Folder/New Launcher from within Nautilus.

    If lockdown_desktop icons is not set then the icons_to_lockdown key is
    referred to, this key will contain a list of specific .desktop files that
    are locked down, and only these will be restricted from removing/renaming/
    moving. A user will be able to add new icons, and the newly added ones
    will not be locked down.

    The above two keys will also be used to determine if an icons properties
    can be accessed.

    - Restrict users from accessing a files properties, either from File menu or
      context menu.

    New key :
        /desktop/gnome/lockdown/nautilus/disable_properties     boolean

    If set simply hide the properties menu item.

	
    - Restrict users from running applications within nautilus.

    New keys :
	/desktop/gnome/lockdown/nautilus/disable_application_launching  boolean

    This will have the affect of hiding the Open, Open With and Open in New
    Window menu items, and also disable double-click launching.


    - Restrict a user from browsing directories/locations.

    New Keys :
        /desktop/gnome/lockdown/nautilus/restrict_viewable_locations    boolean
        /desktop/gnome/lockdown/nautilus/viewable_locations         list/string

    If restrict_viewable_locations is NOT set, then all locations/directories
    are viewable to the user. If it is set then the viewable_locations key will
    be checked. This key will contain a list of locations that a user can view
    which can include directory paths and nautilus locations such as network://
    etc.. If the list is empty then the user cannot view any locations.


    - Define sensitivity for all context menu items :

    New Keys :

        /desktop/gnome/lockdown/nautilus/disable_new_window              boolean
        /desktop/gnome/lockdown/nautilus/disable_new_folder              boolean
        /desktop/gnome/lockdown/nautilus/disable_new_launcher            boolean
        /desktop/gnome/lockdown/nautilus/disable_new_terminal            boolean
        /desktop/gnome/lockdown/nautilus/disable_scripts                 boolean
        /desktop/gnome/lockdown/nautilus/disable_cut                     boolean
        /desktop/gnome/lockdown/nautilus/disable_copy                    boolean
        /desktop/gnome/lockdown/nautilus/disable_paste                   boolean
        /desktop/gnome/lockdown/nautilus/disable_duplicate               boolean
        /desktop/gnome/lockdown/nautilus/disable_make_link               boolean
        /desktop/gnome/lockdown/nautilus/disable_rename                  boolean
        /desktop/gnome/lockdown/nautilus/disable_move_to_thrash          boolean
        /desktop/gnome/lockdown/nautilus/disable_stretch_icon            boolean
        /desktop/gnome/lockdown/nautilus/disable_restore_icon            boolean
        /desktop/gnome/lockdown/nautilus/disable_add_to_archive          boolean
        /desktop/gnome/lockdown/nautilus/disable_disks                   boolean
        /desktop/gnome/lockdown/nautilus/disable_use_default_background  boolean
        /desktop/gnome/lockdown/nautilus/disable_change_desktop_background
                                                                         boolean

    Just hide the relevant menu item of the key is set.


    - Disable setting of default printer

    New Key :
        /desktop/gnome/lockdown/nautilus/disable_make_default_printer    boolean

    Hides the Make Default Printer context menu item.


    - Restrict user from adding new devices

    New Key :
        /desktop/gnome/lockdown/nautilus/disable_new_devices            boolean

    We can't physically stop a user from adding a new device such as a digital
    camera etc... but if this key is set, then ensure that Nautilus does not
    react to it, e.g. showing an icon for a USB device etc....


2. GNOME Panel
    - Restrict a user from adding/removing panels

    New Keys :
        /desktop/gnome/lockdown/panel/disable_new_panel           boolean
        /desktop/gnome/lockdown/panel/disable_delete_this_panel   boolean

    If set hide the context menu items New Panel and Delte This Panel.


    - Restrict a user from adding items (launchers/applets) to their panel.

    New Key :
        /desktop/gnome/lockdown/panel/disable_add_to_panel        boolean

    If set simply hide the menu item Add To Panel. This will do for strict
    lockdown, if more granularity is required then individual keys could be
    defined for the specific entries un the Add To Panel submenu.


    - Restrict access to the rest of the Panel Context Menu.

    New Keys :
        /desktop/gnome/lockdown/panel/disable_run_application     boolean
        /desktop/gnome/lockdown/panel/disable_run_find_files      boolean
        /desktop/gnome/lockdown/panel/disable_run_log_out         boolean
        /desktop/gnome/lockdown/panel/disable_run_lock_screen     boolean
        /desktop/gnome/lockdown/panel/disable_run_open_recent     boolean
        /desktop/gnome/lockdown/panel/disable_run_properties      boolean

    Again if set hide the relevent Menu item.


    - Restrict all terminal access from panel.

    This is a tricky as currently terminal access can be achieved from the
    following menus :

        Add To Panel->Launcher    (Add a new terminal launcher)
        Add To Panel->Launcher From Menu   (Use the terminal menu entry
        Add To Panel->Utility->Command Line Applet
        Applications->Run Command
        Applications->System Tools->Terminal

    We could have simply one key :

        /desktop/gnome/lockdown/panel/restrict_terminal_access    boolean

    And this would in effect hide all of above., or have individual keys for
    all of the above., the key disable_add_to_panel, key can cater for the first
    three mentioned already.

    Another way could be to have a general desktop key :

        /desktop/gnome/lockdown/restrict_terminal_access           boolean

    Which could be be used by nautilus as well...

    Open to ideas here as to how this might be best achieved.


    - Restrict a user from moving location of their panel

    A user can change their panel orientation by :
        - Drag and Drop
        - Panel Context->Properties

    There is already Gconf keys in place for each of the panel's properties
     	/apps/panel/profiles/<panel>/orientation  etc...

    If these are locked then the user should not be able to change the location
    of their panel.

3. Network Access

    - Restrict user from setting/changing their proxy settings

    There are already a number of keys for this in gconf for http, ftp etc.
    Just missing two for gopher. So two new keys needed here

        /system/proxy/gopher_port      int
        /system/proxy/gopher_host      string

    - Define a list of http locations that proxy is not needed for.

    New Key :
        /system/http_proxy/no_proxy_for      list/string

    This key will contain a list of locations for which a proxy is not required.


4. GConf

    - Restrict users from accessing gconf database.

    New Keys :
        /desktop/gnome/lockdown/gconf/disable_gconf_tools_access    boolean

    If set then the user cannot run gconf-editor or gconftool-2.


    - Allow certain users to view/modify a given set of settings within their
      gconf database.

    New Keys :
        /desktop/gnome/lockdown/gconf/tree_access_rights      string
        /desktop/gnome/lockdown/gconf/partial_access          list/string

    If the key disable_gconf_tools_access is set then neither of these two will
    be checked.

    If disable_gconf_tools_access is not set then firstly tree_access_rights is
    checked this can have three values :
        read-only      -      user has read-only acces to entire database
        read-write     -      user has read-write access to entire database
        partial        -      user has partial access to database

    If the value of tree_access_rights is partial, then the partial_access key
    is checked. It will contain a list of strings in the format :
        path:access_type

    where path is a complete path into gconf, and access_type is either
    read-only or read-write. Thus it will define a list of paths into a gconf
    database and the type of access the user has to that path. If the list is
    empty then the user will have no access to Gconf, similar to setting
    the key disable_gconf_tools_access.


What are people's comments on the above...

Phew... now that took a bit of time..

Matt

--
        __.--'\     \.__./     /'--.__
    _.-'       '.__.'    '.__.'       '-._
  .'       Matt Keenan (mattman)          '.
 /       Sun Microsystems Ireland           \
|                                            |
|   E-Mail : Matt Keenan Sun Com             |
|            mattman iol ie                  |
|                                            |
|  Irish Fantasy League Of American Football |
|           http://www.iflaf.com             |
|                                            |
|        Happy Hookers Golf Society          |
|   http://www.iol.ie/~mattman/golf/hhgs.htm |
|                                            |
|   Phone  : +353 1 8199251, Sun Ext : 19251 |
 \         .---.              .---.         /
  '._    .'     '.''.    .''.'     '.    _.'
     '-./            \  /            \.-'
                      ''




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]