commit 43091e644ff54997468a215b891dcaa75173f133 Author: Trucido Date: Thu May 10 01:22:21 2018 -0400 fix string test to arithmetic test in /etc/profile.d/wsl.sh = test operator compares literal string "0000" whereas -eq compares integer value which works with shells that truncate the umask (such as zsh which is sometimes set to 000 instead of 022). This is the least invasive change I could think of that solves this issue, since it will match 0, 00, 000, and 0000. Also, the wsl.csh should probably also be changed to use (`umask` <= 0) or equivalent, but csh seems to strip all leading zeros anyways so is not needed. diff --git a/files/etc/profile.d/wsl.sh b/files/etc/profile.d/wsl.sh index 13bff3a..0503a18 100644 --- a/files/etc/profile.d/wsl.sh +++ b/files/etc/profile.d/wsl.sh @@ -7,7 +7,7 @@ if test -n "$IS_WSL" ; then if test -n "$ORIG_PATH" ; then PATH=$ORIG_PATH:$PATH fi - if test $(umask) = 0000; then + if test $(umask) -eq 0; then UMASK_LOGIN_DEFS=$(sed -ne 's/^UMASK[[:space:]]*//p' /etc/login.defs) test "$UMASK_LOGIN_DEFS" && umask "$UMASK_LOGIN_DEFS" unset UMASK_LOGIN_DEFS