Hi,

The TC has decided on the following resolution for the group staff issue:

> | 2. Decide to change the default so that /usr/local is not writeable by
> | group staff anymore. This change should only be implemented after an
> | appropriate transition plan exists which enables system administrators
> | to maintain the ability of group staff to write to /usr/local.
> | (Reasons for the change are the adaption of other tools like sudo on
> | most sites, and the concept of "least surprise" for novice users.)

I'd like to move forward with this bug so that it can be resolved for squeeze.

The TC decided an "appropriate transition plan" should exist. If we would 
change the default on a new system to root:root 2775 for /usr/local, a 
sysadmin needs to chgrp that to staff once to regain the old behaviour.

A transition plan should hence entail:
a) Update documentation to reflect new default;
b) Mention in documentation how to enable the 'staff group' functionality if 
so desired;
c) Update policy;
d) Update base-files.
I think these steps could happen in parallel.

Attached are patches to facilitate all steps above.

* debian-reference.patch removes mention of the staff group. This document is 
intended as a general overview ("provide overview and skip corner cases", 
mentions the preface), and the staff group is specific enough not to be a 
necessary part of this. The securing-debian manual (see next bullet) is more 
than appropriate for this.

* securing-debian.patch updates mention of the staff group in the Securing 
Debian manual to explain that you need to chgrp /usr/local once to achieve 
the desired functionality, and warn about the root equivalence. Remove 
mention of /home in this context as we don't ship staff-writable home for a 
long time now and that has no real identified use.

* debian-policy.patch updates policy to drop the requirement to make items 
under /usr/local owned by the staff-group. Permissions 2775 remain as they 
are harmless when used with root:root, but keep the property that once the 
thing has been made group-staff, it will work as previously and will stick.

* base-files.patch implements the policy change.

I'm curious to learn if there's a desire for more transition planning than 
this, and what it should entail. Otherwise I'll push forward with filing the 
respective patches against their packages.


cheers,
Thijs
diff --git a/en/tutorial.en.xml b/en/tutorial.en.xml
index 64937e7..faab7a5 100644
--- a/en/tutorial.en.xml
+++ b/en/tutorial.en.xml
@@ -931,15 +931,6 @@ $ ls -l foo bar
                 <entry colsep="1" rowsep="1">
                   <para> System monitoring logs. </para>
                 </entry>
-              </row><row rowsep="1">
-                <entry colsep="1" rowsep="1">
-                  <para>
-                    <code>staff</code>
-                  </para>
-                </entry>
-                <entry colsep="1" rowsep="1">
-                  <para> Some directories for junior administrative work: "<code>/usr/local</code>", "<code>/home</code>". </para>
-                </entry>
               </row></tbody>
           </tgroup>
         </table>
Index: securing-howto/en/faq.sgml
===================================================================
--- securing-howto/en/faq.sgml	(revision 6829)
+++ securing-howto/en/faq.sgml	(working copy)
@@ -494,9 +494,13 @@
 access to a video device.
 
 <item>staff: Allows users to add local modifications to the system
-(<file>/usr/local</file>, <file>/home</file>) without needing root
-privileges. Compare with group "adm", which is more related to
-monitoring/security.
+(under <file>/usr/local</file>) without needing root
+privileges. To enable this, change the group of <file>/usr/local</file>
+to staff; subsequent updates will respect this. Be careful though when doing
+this: because <file>/usr/local/bin</file> is in root's path, this group
+becomes essentially root-equivalent! Tools like 'sudo' may provide a
+solution to this problem aswell.
+Compare with group "adm", which is more related to monitoring/security.
 
 <item>users: While Debian systems use the private user group system by
 default (each user has their own group), some prefer to use a more
@@ -518,8 +522,11 @@
 <p>The 'adm' group are usually administrators, and this group
 permission allows them to read log files without having to
 <prgn>su</prgn>. The 'staff' group are usually help-desk/junior
-sysadmins, allowing them to work in <file>/usr/local</file> and create
-directories in <file>/home</file>.
+sysadmins, allowing them to work in <file>/usr/local</file>,
+if the group of this directory has been changed to 'staff' once.
+Note that doing this makes the members of the 'staff' group
+essentially root, since <file>/usr/local/bin</file> is in
+root's path.
 
 <sect1>Why is there a new group when I add a new user? (or Why does
 Debian give each user one group?)
diff --git a/policy.sgml b/policy.sgml
index deae2dd..f6d1aac 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -5674,7 +5674,6 @@ if [ ! -e /usr/local/share/emacs ]
 then
   if mkdir /usr/local/share/emacs 2>/dev/null
   then
-    chown root:staff /usr/local/share/emacs
     chmod 2775 /usr/local/share/emacs
   fi
 fi
@@ -5708,7 +5707,7 @@ rmdir /usr/local/share/emacs 2>/dev/null || true
 	    The <file>/usr/local</file> directory itself and all the
 	    subdirectories created by the package should (by default) have
 	    permissions 2775 (group-writable and set-group-id) and be
-	    owned by <tt>root:staff</tt>.
+	    owned by <tt>root:root</tt>.
 	  </p>
 	</sect1>
 
--- debian/postinst.in	2009-04-24 19:49:57.000000000 +0200
+++ debian/postinst.in	2009-08-11 22:18:56.000000000 +0200
@@ -5,7 +5,6 @@
   if [ ! -d $1 ]; then
     mkdir -p $1
   fi
-  chown root:staff $1 2> /dev/null || true
   chmod 2775 $1 2> /dev/null || true
 }
 

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to