-
Notifications
You must be signed in to change notification settings - Fork 834
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Default umask (permissions) is not applied #352
Comments
May be somewhat related to #167 , |
@simonbuchan Thanks for reporting this. I think there are a couple things going on here. I verified that when bash.exe --login is launched /bin/bash does read from /etc/profile. I dumped my default /etc/profile and noticed a comment that:
When you run "bash.exe --login" that translates into "/bin/bash --login". We don't run the /bin/login binary and I'm assuming that's what normally sets up pam_umask. Did you try adding a new umask to value to your /etc/profile? It should work (when using bash.exe --login). |
Yep, |
Please ensure umask is never 0000 no matter how bash is started. I understand users can set umask to saner defaults in their own bashrc files but it means whatever directories and files auto-installed by scripts after WSL setup and user first bash run till the bad umask was discovered now have to be changed to sane defaults. This is exacerbated in git-based repos because git will track the change of perms to saner defaults as a (needless) change thereby status of git repo becomes dirty which simply put is both: confusing and annoying. |
@0xMF don't worry, git only tracks +x, and the .bashrc changes are mentioned as a workaround |
This also causes problems for zsh (compinit/compaudit). If you use a tool like antigen the directory permissions will throw shell errors when compinit/compaudit (command completion) is loaded. Essentially any tool that performs basic checking for "other" write/read permissions will fail. For anyone else trying to use dropbox, careful with symlinks to the windows |
Hello, It's very strange. If I run ./configure, I found that the Makefile in the dir and sub dir only has permission rw no x. So some middle product didn't output, ./configure is right, but can't do make. It's a big problem. |
/usr/bin/m4: m4_esyscmd subprocess failed: Operation not permitted |
I have put this in my
@benhillis: if you have time to entertain my curiosity - is there a particular reason you don't run /bin/login? |
@LilRed - good question. Historically there have been a couple of reasons. When we first released /bin/bash worked but other shells (zsh for example) didn't work very well and we didn't want users to set their default shell to something that didn't work and get into a bad state. There's also potential strangeness around running bash.exe and zsh being launched. That being said, running login would actually make a lot of things simpler for us. Currently our init daemon has to do many of the things that /bin/login normally does. We're doing some design for the next release of Windows and I'll take a look at this and see if it would make sense to potentially switch things over now. If you'd like to play around with using login there's a way you can use it now. lxrun.exe /setdefaultuser root |
This is fantastic, thanks for the insight. I will change my Bash shortcut to this and report back if I hit any issues. |
With Also it seems to start faster?! |
One thing to be aware of is it doesn't extend PATH with the windows path. |
@jackchammons Does closing this mean the default setup will now set a |
The current behavior is expected. We will be reevaluating where umask gets set in an future release. |
This is breaking unit tests for swift-llbuild, part of the Swift.org project:
|
Thanks for your patience. I'm adding a default umask of 022, with an /etc/wsl.conf setting to override it:
|
Woo! My ls will finally be cured of it's horrifying green miasma! |
Had a nice surprise today when I built a static site using Hugo in WSL from None of the workarounds mentioned here seem to have any effect. While it's possible to set Re-cloned the repo in my home folder and everything is behaving as expected there. |
@radusuciu You probably won't ever be able to |
You've been able to do that since 17063 circa Christmas of 2017. |
And the permissions stick? I'll have to play with that. |
My workaround was:
Using that, default umask is set to 0002 If you want to use umask 022 you have two options:
|
I just updated to 1909 and this problem is still there. |
This is how I workaround it in my dotfiles, if it helps anyone ;) |
Right; it looks like Ben's fix shipped in 18945. 18945 > 18363 (aka 1909 aka 19H2). Which is to say, it appears a number of issues that were addressed in spring/summer 2019 never made it into the November 2019 Windows 10 release. [Or, at least on best evidence.] I'll bounce the tag on this one, but to be honest I'm hoping the fine-grained fixed-in tags die this spring in favour of whatever version is cited in the issue (presupposing they're cited). Here, 18945. |
It seems that pam modules are (partly) still not functioning. MOTD is not correctly shown. #1966 |
Reference: http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
My current install has this in
/etc/profile
:And, indeed
/etc/profile
hasUMASK> > 022
, but:The effect of this is that new files are created with 666 and dirs with 777 permissions:
This mostly isn't a real problem since UoW doesn't have to care about multiple users, it largely shows up as ls showing dirs with an ugly green background, but it could freak out some tools, similar to
ssh
wanting600
on your private keys.Simplest fix would probably be to dump a
umask 022
in/etc/profile
, but it seems there's a bunch of stuff in that/etc/login.defs
Easy workaound is to add a
umask
to your~/.bashrc
The text was updated successfully, but these errors were encountered: