Lines 4038-4043
Link Here
|
4038 |
dirmode = 02070 |
4038 |
dirmode = 02070 |
4039 |
filemode = 060 |
4039 |
filemode = 060 |
4040 |
modemask = 02 |
4040 |
modemask = 02 |
|
|
4041 |
restrict = mysettings.get("PORTAGE_RESTRICT","").split() |
4042 |
from portage_data import secpass |
4043 |
droppriv = secpass >= 2 and \ |
4044 |
"userpriv" in mysettings.features and \ |
4045 |
"userpriv" not in restrict |
4041 |
for myfeature, kwargs in features_dirs.iteritems(): |
4046 |
for myfeature, kwargs in features_dirs.iteritems(): |
4042 |
if myfeature in mysettings.features: |
4047 |
if myfeature in mysettings.features: |
4043 |
basedir = mysettings[kwargs["basedir_var"]] |
4048 |
basedir = mysettings[kwargs["basedir_var"]] |
Lines 4054-4060
Link Here
|
4054 |
# Generally, we only want to apply permissions for |
4059 |
# Generally, we only want to apply permissions for |
4055 |
# initial creation. Otherwise, we don't know exactly what |
4060 |
# initial creation. Otherwise, we don't know exactly what |
4056 |
# permissions the user wants, so should leave them as-is. |
4061 |
# permissions the user wants, so should leave them as-is. |
4057 |
if modified or kwargs["always_recurse"]: |
4062 |
droppriv_fix = False |
|
|
4063 |
if droppriv: |
4064 |
st = os.stat(mydir) |
4065 |
if st.st_gid != portage_gid or \ |
4066 |
not stat.S_IMODE(st.st_mode) & dirmode: |
4067 |
droppriv_fix = True |
4068 |
if modified or kwargs["always_recurse"] or droppriv_fix: |
4058 |
if modified: |
4069 |
if modified: |
4059 |
writemsg("Adjusting permissions recursively: '%s'\n" % mydir, |
4070 |
writemsg("Adjusting permissions recursively: '%s'\n" % mydir, |
4060 |
noiselevel=-1) |
4071 |
noiselevel=-1) |