[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