This is the fifth in a series of eight patches to the BSD Secure
Levels LSM.  It allows setuid and setgid on a process if the user is
already root.  This allows non-root users to log in.  Thanks to Serge
Hallyn for the suggestion.

Signed off by: Michael Halcrow <[EMAIL PROTECTED]>
Index: linux-2.6.11-rc2-mm1-modules/security/seclvl.c
===================================================================
--- linux-2.6.11-rc2-mm1-modules.orig/security/seclvl.c 2005-02-03 
15:39:35.786556648 -0600
+++ linux-2.6.11-rc2-mm1-modules/security/seclvl.c      2005-02-03 
15:41:46.043754544 -0600
@@ -442,12 +442,12 @@
                                      "in secure level [%d] denied\n",
                                      __FUNCTION__, seclvl);
                        return -EPERM;
-               } else if (cap == CAP_SETUID) {
+               } else if (cap == CAP_SETUID && current->uid != 0) {
                        seclvl_printk(1, KERN_WARNING "%s: Attempt to setuid "
                                      "while in secure level [%d] denied\n",
                                      __FUNCTION__, seclvl);
                        return -EPERM;
-               } else if (cap == CAP_SETGID) {
+               } else if (cap == CAP_SETGID && current->uid != 0) {
                        seclvl_printk(1, KERN_WARNING "%s: Attempt to setgid "
                                      "while in secure level [%d] denied\n",
                                      __FUNCTION__, seclvl);

Reply via email to