File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -35,7 +35,13 @@ if [[ "$BINARY" == *.exe ]] && command -v cygpath >/dev/null 2>&1 &&
3535 ! command -v winepath > /dev/null 2>&1 ; then
3636 WIN_ROOT=$( mktemp -d " $( cygpath " $USERPROFILE " ) /cbm-memlab.XXXXXX" )
3737 WIN_ROOT_W=" $( cygpath -w " $WIN_ROOT " ) "
38+ # Qualify with the domain: a bare name from coreutils `whoami` resolves
39+ # against the machine first, so on a host whose name equals the user's the
40+ # grant lands on an empty principal.
3841 ME=" $( whoami | tr -d ' \r' ) "
42+ if [ -n " ${USERDOMAIN:- } " ]; then
43+ ME=" ${USERDOMAIN} \\ ${ME} "
44+ fi
3945 MSYS2_ARG_CONV_EXCL=' *' icacls " $WIN_ROOT_W " /reset /Q > /dev/null 2>&1 || true
4046 if ! MSYS2_ARG_CONV_EXCL=' *' icacls " $WIN_ROOT_W " /inheritance:r \
4147 /grant:r " ${ME} :(OI)(CI)F" ' *S-1-5-18:(OI)(CI)F' ' *S-1-5-32-544:(OI)(CI)F' \
Original file line number Diff line number Diff line change @@ -58,7 +58,16 @@ stamp_windows_build_dir() {
5858 esac
5959 local runner_dir_w me norm_out stamp_out reset_out
6060 runner_dir_w=" $( cygpath -w " $( dirname " $RUNNER " ) " ) "
61+ # Qualify the account with its domain. Git Bash resolves `whoami` to
62+ # coreutils, which prints a bare name, and icacls resolves a bare name
63+ # against the machine first: on a host whose name equals the user's
64+ # (COMPUTERNAME=BUILD, user build) the grant lands on an empty principal
65+ # (BUILD\) and, combined with /inheritance:r above, locks this script out
66+ # of its own log directory.
6167 me=" $( whoami | tr -d ' \r' ) "
68+ if [ -n " ${USERDOMAIN:- } " ]; then
69+ me=" ${USERDOMAIN} \\ ${me} "
70+ fi
6271 # Normalize FIRST: some runner images stamp EXPLICIT (non-inherited)
6372 # Authenticated-Users ACEs onto the workspace tree, which /inheritance:r
6473 # cannot strip and /grant:r does not touch (it replaces only the granted
Original file line number Diff line number Diff line change @@ -77,7 +77,13 @@ mkdir -p "$RESULTS_DIR"
7777soak_stamp_windows_dir () {
7878 local dir_w me output
7979 dir_w=" $( cygpath -w " $1 " ) "
80+ # Qualify with the domain: a bare name from coreutils `whoami` resolves
81+ # against the machine first, so on a host whose name equals the user's the
82+ # grant lands on an empty principal.
8083 me=" $( whoami | tr -d ' \r' ) "
84+ if [ -n " ${USERDOMAIN:- } " ]; then
85+ me=" ${USERDOMAIN} \\ ${me} "
86+ fi
8187 if ! output=$( MSYS2_ARG_CONV_EXCL=' *' icacls " $dir_w " /reset /Q 2>&1 ) ; then
8288 echo " FAIL: soak DACL normalize failed (dir=$dir_w user=$me )" >&2
8389 printf ' %s\n' " $output " >&2
You can’t perform that action at this time.
0 commit comments