[sabayon] Removed a bunch of very technical things which shouldn't be in a user manual. Moved to the wiki



commit 09cec81361d47fd04cba8d5da45b7bcf380802bd
Author: Scott Balneaves <sbalneav ltsp org>
Date:   Mon Dec 28 13:24:30 2009 -0600

    Removed a bunch of very technical things which shouldn't be in a user manual.  Moved to the wiki

 help/C/sabayon.xml |  652 ++--------------------------------------------------
 1 files changed, 14 insertions(+), 638 deletions(-)
---
diff --git a/help/C/sabayon.xml b/help/C/sabayon.xml
index e20775b..ef9ace0 100644
--- a/help/C/sabayon.xml
+++ b/help/C/sabayon.xml
@@ -336,19 +336,21 @@ gksu sabayon
                     <para>
                         If you want &appname; to ignore a setting that's been
                         made, check the "Ignore" checkbox for that item.
-                    </para>
+                   </para>
                 </listitem>
                 <listitem>
                     <para>
                         To have a gconf key set as a "default" setting,
-                        click the small shield in front of it once, so that
+                        simply leave it as is on the
+                        <emphasis>wooden</emphasis>  shield.
                         it's silver.
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
                     <para>
                         To have a gconf key set as a "manditory" setting,
-                        simply leave it as a gold shield.
+                        click on it once to turn it into a
+                        <emphasis>iron</emphasis> shield.
                     </para>
                 </listitem>
             </orderedlist>
@@ -361,12 +363,13 @@ gksu sabayon
          <sect2>
              <title>Lockdown Editor</title>
              <para>
-                 GNOME also has lockdown features, which allow you to do things
+                 GNOME also includes the lockdown features of
+                 <filename>Pessulus</filename>, which allow you to do things
                  like prevent users from modifying their panels, opening a
                  "Run Application" dialogue, etc.
              </para>
              <para>
-                 You can use &appname;'s lockdown editor by selecting Edit -&gt;
+                 You can use the lockdown editor by selecting Edit -&gt;
                  Lockdown on the Desktop editor window.
              </para>
             <figure>
@@ -393,35 +396,13 @@ gksu sabayon
         <sect2>
            <title>Applying a profile</title>
            <para>
-               Important : I advise you creating a new user to test the profile.
-               Add the following lines in /etc/gconf/2/path (add them at the beginning of the file) :
+               Important: it is advisable to create a new user to test the profile.
            </para>
-           <screen>
-xml:readonly:$(HOME)/.gconf.xml.mandatory
-xml:readwrite:$(HOME)/.gconf
-xml:readonly:$(HOME)/.gconf.xml.defaults
-           </screen>
-       </sect2>
-       <sect2>
-           <title>Applying profiles by user</title>
            <para>
-               Create and edit /etc/X11/Xsesssion.d/60sabayon_apply.
-           </para>
-           <screen>
-#
-# Apply the Sabayon profile for the current user (if any)
-#
-if [ "x$DISABLE_SABAYON_XINITRC" = "x" ] ; then
-    if [ -x /usr/sbin/sabayon-apply ] ; then
-        /usr/sbin/sabayon-apply
-    fi
-fi
-            </screen>
-            <para>
-                Select the profile that you want to apply and click on Users :
-                Then, select the users that you want to apply the profile.
-                In this example Eleve1 and Eleve 2 will have the profile
-                my_profile.
+               Select the profile that you want to apply and click on Users :
+               Then, select the users that you want to apply the profile.
+               In this example Eleve1 and Eleve 2 will have the profile
+               my_profile.
             </para>
             <figure>
                 <title>Apply profile by user</title>
@@ -449,93 +430,6 @@ fi
                 alternatively, by a manual script.
             </para>
             <sect3>
-                <title>Manually with a script</title>
-                <para>
-                    The following is a script to apply a profile to a group of users :
-                </para>
-                <screen>
-#!/bin/bash
-#
-#Script : apply a profile to a group of users
-#Argument 1 : name of the profile
-#Argument 2 : name of the group
-#
-chemin_profil="/etc/sabayon/profiles/$1".zip
-if [ $# -eq 2 ]
-then
- if [ -a $chemin_profil ]
- then
-    getent group | cut -d ":" -f 1 | grep $2 > /dev/null
-    result=$?
-    if [ $result -eq 0 ]
-    then
-        if [ -x /usr/sbin/sabayon-apply ]
-        then
-          groupe=`getent group | cut -d ":" -f 1,3 | grep $2 | cut -d ":" -f 2`
-          getent passwd | while read ligne
-          do
-              gid=$(echo $ligne | cut -d ":" -f 4)
-              name=$(echo $ligne | cut -d ":" -f 1)
-              if [ $gid -eq $groupe ]
-              then
-                 home=$(getent passwd | cut -d ":" -f 1,6 | grep $name | cut -d ":" -f 2)
-                 touch $home/.gconf.path
-                 touch $home/.gconf.path.defaults
-                 touch $home/.gconf.path.mandatory
-                 echo "include $home/.gconf.path.defaults" > $home/.gconf.path
-                 echo "include $home/.gconf.path.mandatory" >> $home/.gconf.path
-                 echo xml:readonly:$home/.gconf.xml.defaults > $home/.gconf.path.defaults
-                 echo xml:readonly:$home/.gconf.xml.mandatory > $home/.gconf.path.mandatory
-                 if [ -a $home/.gconf.xml.defaults ]
-                 then
-                    rm -r $home/.gconf.xml.defaults
-                 fi
-                 if [ -a $home/.gconf.xml.mandatory ]
-                 then
-                    rm -r $home/.gconf.xml.mandatory
-                 fi
-                 su $name -c "/usr/sbin/sabayon-apply $chemin_profil"
-                 chown -R root $home/.gconf.path
-                 chgrp -R root $home/.gconf.path
-                 chmod 755 $home/.gconf.path
-                 chown -R root $home/.gconf.path.defaults
-                 chgrp -R root $home/.gconf.path.defaults
-                 chmod 755 $home/.gconf.path.defaults
-                 chown -R root $home/.gconf.path.mandatory
-                 chgrp -R root $home/.gconf.path.mandatory
-                 chmod 755 $home/.gconf.path.mandatory
-                 chown -R root $home/.gconf.xml.defaults
-                 chgrp -R root $home/.gconf.xml.defaults
-                 chmod 755 $home/.gconf.xml.defaults
-                 chown -R root $home/.gconf.xml.mandatory
-                 chgrp -R root $home/.gconf.xml.mandatory
-                 chmod 755 $home/.gconf.xml.mandatory
-                 echo "The profile $1 has been applied to $name."
-              fi
-           done
-           echo "The profile $1 has been applied to the group $2."
-        fi
-    else
-        echo "The group does not exist."
-    fi
- else
-    echo "The profile does not exist."
- fi
-else
- echo ""
- echo "Usage: $0 [name of the profile] [name of the group]"
- echo ""
-fi
-
-
-Usage :
-# sudo ./sabayon.sh my_profil eleves
-    - The name of the script is sabayon.sh.
-    - 1st argument : my_profil which is the name of the profile.
-    - 2nd argument : eleves which is the name of the group.
-                </screen>
-            </sect3>
-            <sect3>
                 <title>Via the gui</title>
                 <para>
                     Simply use the simply sabayon-apply script above, but
@@ -563,522 +457,4 @@ Usage :
             </sect3>
         </sect2>
     </sect1>
-    <sect1 id='technical'>
-        <title>&appname; Internals</title>
-        <para>
-            This section outlines some information about &appname; that
-            Administrators, or potential &appname; developers may find useful.
-        </para>
-        <sect2 id='user-database'>
-            <title>User database</title>
-            <para>
-                This page details the format of the user configuration file,
-                where to store and access them.
-            </para>
-            <para>
-                This file is located under
-                <filename>/etc/sabayon/users.xml</filename>
-                (see PROFILESDIR in the config.py file to change the
-                prefix), as the name makes clear it is an XML file and
-                usually look like:
-            </para>
-            <screen>
-&lt;profiles&gt;
-    &lt;user name="titeuf" profile="developer"/&gt;
-    &lt;user name="fab" profile="developer"/&gt;
-    &lt;user name="bianca" profile="secretary"/&gt;
-	...
-    &lt;default profile="default"/&gt;
-&lt;/profiles&gt;
-            </screen>
-            <para>
-                It contains a list of named users, and their associated profile.
-                The profile in that case are aliases, for example
-                <emphasis>developer</emphasis>
-                is a shortcut for <filename>developer.zip</filename> in the same directory.
-            </para>
-            <para>
-                The default profile will be applied for any login not listed
-                explicitely in the set of users.
-            </para>
-        </sect2>
-        <sect2 id='centralized-profiles'>
-            <title>Centralized user databases and profiles</title>
-            <para>
-                For large and automated deployement, maintaining copies of the user
-                database and profiles on all machines does not really make sense. To
-                avoid the problem, the profile values can be an URI - preferably using
-                HTTP - to reference a remote resource like:
-            </para>
-            <screen>
-...
-&lt;user name="titeuf"
-    profile="http://server.corp.com/prof/developers.zip"/&gt;
-&lt;user name="fab"
-    profile="http://server.corp.com/prof/developers.zip"/&gt;
-...
-            </screen>
-            <para>
-                The profiles should then be maintained on a separate machine and
-                copied over to the server when updated.
-            </para>
-            <para>
-                The user database can also be centralized, using the
-                <emphasis>XInclude</emphasis> mechanism for XML.
-                For example the following assume there is a developer list maintained
-                separately on the server, and defining the profiles for
-                them:
-            </para>
-            <screen>
-&lt;profiles&gt;
-    &lt;xi:include xmlns:xi="http://www.w3.org/2001/XInclude";
-	   href="http://server.corp.com/user/devel.xml#xpointer(//user)"/&gt;
-    ...
-    &lt;default profile="default"/&gt;
-&lt;/profiles&gt;
-            </screen>
-            <para>
-                This XInclude will just collect all user definitions in the developer
-                list at <emphasis>http://server.corp.com/user/devel.xml</emphasis>
-                and replace the include statement with that list, and process
-                the XML as usual. The only difference is that the profile
-                values are then assumed to be URI-References
-                and for example if the <emphasis>devel.xml</emphasis> contains
-            </para>
-            <screen>
-...
-    &lt;user name="titeuf" profile="../prof/developers.zip"/&gt;
-...
-            </screen>
-            <para>
-                then &appname; will fetch the profile relative to the location of
-                devel.xml, that is it will lookup the profiles relative to the base
-                of where the fragment was defined and use
-                <emphasis>http://server.corp.com/prof/developers.zip</emphasis>. Also note that
-                shortcut are not allowed there, the trailing
-                <emphasis>.zip</emphasis> is needed.
-            </para>
-            <para>
-                The last point about the centralized support is that &appname; will
-                use a cache located in the user home directory under
-                <filename>.sabayon/profile_cache</filename>
-                to keep a copy of the non-local files, this allows profile to function
-                normally in disconnected operations or in case of server failures.
-            </para>
-        </sect2>
-        <sect2 id='profile-format'>
-            <title>Format of profile storage</title>
-            <para>
-                The following is a description of the requirement and the choices
-                made when designing the user profile files. The existing format may
-                change in the future but unless some of the requirement were missing
-                it seems the existing choice is simple and flexible enough that no
-                big change should be needed in the future.
-            </para>
-            <sect3 id='format-requirements'>
-                <title>Format requiements</title>
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            incremental update
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            container for sets of settings of different apps
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            associate apps with settings
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            independent update of one set of settings
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            ability to store full file
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            ability to save path with the content
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            provide metadata for the whole set and for each apps settings
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            possibility to merge and detect potential clashes on merges
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            possibility to extract or remove a simple set of data
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            allow to process with as standard tools as possible
-                        </para>
-                    </listitem>
-                </itemizedlist>
-            </sect3>
-            <sect3 id='design-choices'>
-                <title>Design Choices</title>
-                <para>
-                    Use ZIP for the container format:
-                </para>
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            platform ubiquity Linux/Windows/Mac...
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            free software tools and libraries
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            compressed
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            allows to access a single stream without exploding everything like a compressed tar or cpio requires
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            allow to store name/paths
-                        </para>
-                    </listitem>
-                </itemizedlist>
-            </sect3>
-            <sect3 id='metadata'>
-                <title>XML Metadata description</title>
-                <para>
-                    Add an XML metadata section as the first entry:
-                </para>
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            classic design (jar)
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            allow to store all metadata informations associated
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            easy to extend in a backward and forward compatible way
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            open source tools and local knowledge
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            a lot of configuration data already require XML handling so this doesn't add an extra dependancy
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            load/modify subpart/save operations are easy on an XML tree
-                        </para>
-                    </listitem>
-                </itemizedlist>
-            </sect3>
-            <sect3 id='internal-structure'>
-                <title>Internal structure</title>
-                <para>
-                    The container is a Zip, its content can be viewed using the command
-                </para>
-                <screen>
-unzip -l /etc/sabayon/profiles/test.zip
-                </screen>
-                <para>
-                    The first entry is the metadata part, it is an XML file describing the
-                    content of the archive. It can be viewed using the command
-                </para>
-                <screen>
-unzip -p /etc/sabayon/profiles/test.zip metadata
-                </screen>
-                <para>
-                    Currently, the metadata contains
-                </para>
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            general description for the whole set of settings e.g. "Configuration for developers in project foo":
-                        </para>
-                        <itemizedlist>
-                            <listitem>
-                                <para>
-                                    administrative informations
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>
-                                    last change timestamp
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>
-                                    contact
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>
-                                    changelog
-                                </para>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            per stream description
-                        </para>
-                        <itemizedlist>
-                            <listitem>
-                                <para>
-                                     name of the stream in the archive
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>
-                                     associated application
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>
-                                     description for settings e.g. "Mozilla starts full screen"
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>
-                                     administrative info
-                                </para>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </itemizedlist>
-                <para>
-                    Then in the ZIP, each update has its own stream, the format is left to
-                    the corresponding user profile writer module. It can potentially be a
-                    full raw file, or a more synthetic description recognized by the specific
-                    profile module.
-                </para>
-                <para>
-                    Note that an application can have one
-                    stream per different configuration file for example
-                    .openoffice1.1/user/registry/data/org/openoffice/Inet.xcu and
-                    .openoffice1.1/user/registry/data/org/openoffice/Office/Common.xcu
-                    would be 2 different streams maintained by the OpenOffice reader
-                    writer module. An application may have both raw configuration files
-                    and digested name/values pairs, but in different files.
-                </para>
-            </sect3>
-        </sect2>
-        <sect2 id='ldap'>
-            <title>LDAP profile storage</title>
-            <para>
-                Sabayon supports using LDAP to get profiles in a very flexible way.
-                By defining server settings and queries in the
-                <filename>/etc/sabayon/users.xml</filename> file it can do the mapping from user
-                to profile file using LDAP queries. An example setup can look like:
-            </para>
-            <screen>
-&lt;profiles&gt;
- &lt;ldap server="ldap.example.com"&gt;
-  &lt;profilemap search_base="ou=People,dc=example,dc=com"
-           scope="one"
-           query_filter="(uid=%u)"
-           result_attribute="sabayonProfileURL"/&gt;
-  &lt;/ldap&gt;
-  &lt;default profile="default"/&gt;
-&lt;/profiles&gt;
-            </screen>
-            <sect3 id='ldap-server-config'>
-                <title>LDAP server configuration</title>
-                <para>
-                    The toplevel ldap tag sets up the server connection. Availible
-                    attributes are:
-                </para>
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            server (default: localhost): The address of the ldap server
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            port (default: 389): The port of the ldap server
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            version (default: 3): The ldap version to use
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            timeout (default: 10): Timeout to use for ldap operations, 0 to disable
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            bind_dn: dn to bind as, or leave out to run queries without binding
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            bind_pw: password used when binding
-                        </para>
-                    </listitem>
-                </itemizedlist>
-            </sect3>
-            <sect3 id='ldap-queries'>
-                <title>LDAP queries</title>
-                <para>
-                    Inside the ldap tag you can define the two queries used by
-                    &appname;. The
-                    first is the profilemap query, which maps from the username to the profile
-                    name to use for the user. The profile name is just a string, and it can be
-                    either an absolute URI, a URI relative to the config file, or just a name.
-                    If it is a name it will be looked up in the locationmap LDAP query (if specified)
-                    and if that didn't match, it will be converted to a
-                    filename in <filename>/etc/sabayon/profiles</filename> by appending ".zip".
-                </para>
-                <para>
-                    The locationmap query specifies the mapping from profile name to profile
-                    URI. This can optinally be used instead of storing the profile URI directly
-                    in the LDAP user object, to allow more flexibility in changing the URI.
-                </para>
-                <para>
-                    Both queries support these attributes:
-                </para>
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            search_base: The search base of the query
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            query_filter: the LDAP filter to use
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            result_attribute: The name of the attribute to look at in the query result
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            scope (default "sub"): The search scope. Can be sub, base or one.
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            multiple_result (default "first"): How to handle multiple values in the
-                            resulting attribute. Can be "first", use the first attribute or "random", pick
-                            a random one (for e.g. load balancing).
-                        </para>
-                    </listitem>
-                </itemizedlist>
-                <para>
-                    Both search_base and query_filter are expanded. In profilemap %u expands to the username
-                    and in locationmap %p expands to the profile name. In both maps %h expands to the full
-                    hostname of the client, and %% expands to %.
-                </para>
-            </sect3>
-            <sect3 id='ldap-examples'>
-                <title>Examples</title>
-                <para>
-                    There are many way to set up the &appname; LDAP integration. Here are some examples,
-                    all using the &appname; LDAP schema that comes in the
-                    &appname; package.
-                </para>
-                <sect4 id='store-by-user'>
-                    <title>Store profile URL in the user</title>
-                    <para>
-                        This is the simplest setup. Add a sabayonProfileURLObject to your user objects
-                        and set the sabayonProfileURL property for each user to a URI of the profile.
-                    </para>
-                    <screen>
-  ...
-  &lt;ldap server="..."&gt;
-     &lt;profilemap search_base="ou=People,dc=example,dc=com"
-                 scope="one"
-                 query_filter="(uid=%u)"
-                 result_attribute="sabayonProfileURL"/&gt;
-  &lt;/ldap&gt;
-  ...
-                    </screen>
-                </sect4>
-                <sect4 id='store-by-entity'>
-                    <title>Store profile as a separate entity in ldap</title>
-                    <para>
-                        Store the name of the profile for each user (using a
-                        sabayonProfileNameObject object), and store the actual URI in
-                        a sabayonProfile object. This gives a lot of flexibility to change
-                        the URI of the profile, without having to update each user.
-                    </para>
-                    <screen>
-  ...
-  &lt;ldap server="..."&gt;
-     &lt;profilemap search_base="ou=People,dc=example,dc=com"
-                 scope="one"
-                 query_filter="(uid=%u)"
-                 result_attribute="sabayonProfileName"/&gt;
-     &lt;locationmap search_base="ou=Profiles,dc=example,dc=com"
-                  scope="one"
-                  query_filter="(cn=%p)"
-                  result_attribute="sabayonProfileURL"/&gt;
-  &lt;/ldap&gt;
-  ...
-                    </screen>
-                </sect4>
-                <sect4 id='pick-by-group'>
-                    <title>Pick profile based on group membership</title>
-                    <para>
-                        This lets you pick a profile based on what group the user
-                        is part of by adding the sabayonProfileURL attribute to the
-                        group object.
-                    </para>
-                    <screen>
-  ...
-  &lt;ldap server="..."&gt;
-     &lt;profilemap search_base="ou=Group,dc=example,dc=com"
-                 scope="one"
-                 query_filter="(memberUid=%u)"
-                 result_attribute="sabayonProfileURL"/&gt;
-  &lt;/ldap&gt;
-  ...
-                    </screen>
-                </sect4>
-                <sect4 id='ldap-others'>
-                    <title>Others</title>
-                    <para>
-                        There are countless other ways, for example you could combine the
-                        group example and the separate profile object example. If you come up
-                        with an interesting way, please tell us on the mailing list.
-                    </para>
-                </sect4>
-            </sect3>
-        </sect2>
-    </sect1>
 </article>



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