[69467] trunk/base/src

jmr at macports.org jmr at macports.org
Wed Jul 7 05:47:26 PDT 2010


Revision: 69467
          http://trac.macports.org/changeset/69467
Author:   jmr at macports.org
Date:     2010-07-07 05:47:25 -0700 (Wed, 07 Jul 2010)
Log Message:
-----------
set egid along with euid

Modified Paths:
--------------
    trunk/base/src/macports1.0/macports.tcl
    trunk/base/src/port1.0/portutil.tcl

Modified: trunk/base/src/macports1.0/macports.tcl
===================================================================
--- trunk/base/src/macports1.0/macports.tcl	2010-07-07 10:59:10 UTC (rev 69466)
+++ trunk/base/src/macports1.0/macports.tcl	2010-07-07 12:47:25 UTC (rev 69467)
@@ -113,7 +113,7 @@
     global macports::channels macports::portdbpath
 
     if {[getuid] == 0 && [geteuid] != 0} {
-        seteuid 0
+        seteuid 0; setegid 0
     }
     if {[catch {macports::ch_logging $mport} err]} {
         ui_debug "Logging disabled, error opening log file: $err"
@@ -156,7 +156,7 @@
     }
     if {$::logenabled} {
         if {[getuid] == 0 && [geteuid] != 0} {
-            seteuid 0
+            seteuid 0; setegid 0
         }
         if {[catch {macports::ch_logging $mport} err]} {
             ui_debug "Logging disabled, error opening log file: $err"

Modified: trunk/base/src/port1.0/portutil.tcl
===================================================================
--- trunk/base/src/port1.0/portutil.tcl	2010-07-07 10:59:10 UTC (rev 69466)
+++ trunk/base/src/port1.0/portutil.tcl	2010-07-07 12:47:25 UTC (rev 69467)
@@ -2337,15 +2337,17 @@
 #
 # @param path the file/directory to be chowned
 proc chownAsRoot {path} {
-    global euid macportsuser
+    global euid egid macportsuser
 
     if { [getuid] == 0 } {
         if {[geteuid] != 0} {
             # if started with sudo but have dropped the privileges
+            setegid $egid
             seteuid $euid
             ui_debug "euid changed to: [geteuid]"
             chown  ${path} ${macportsuser}
             ui_debug "chowned $path to $macportsuser"
+            setegid [uname_to_gid "$macportsuser"]
             seteuid [name_to_uid "$macportsuser"]
             ui_debug "euid changed to: [geteuid]"
         } else {
@@ -2361,14 +2363,16 @@
 # @param file the file in question
 # @param attributes the attributes for the file
 proc fileAttrsAsRoot {file attributes} {
-    global euid macportsuser
+    global euid egid macportsuser
     if {[getuid] == 0} {
         if {[geteuid] != 0} {
             # Started as root, but not root now
+            setegid $egid
             seteuid $euid
             ui_debug "euid changed to: [geteuid]"
             ui_debug "setting attributes on $file"
             eval file attributes {$file} $attributes
+            setegid [uname_to_gid "$macportsuser"]
             seteuid [name_to_uid "$macportsuser"]
             ui_debug "euid changed to: [geteuid]"
         } else {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100707/d053e20b/attachment.html>


More information about the macports-changes mailing list