问题
Running bash on windows 10, the simple syntax below works when I SSH to my webserver, but not when I exit out and am on my local machine. It doesn't give me an error, but I can see permissions are unchanged. I have to checked that I am set up as an administrator on my computer. Is this an error or is this just a consequence of the local operating system being windows? IF the later, it makes me question the value of using bash on windows if common operations such as this won't work.
$chmod 644 filename
回答1:
Amade's answer is correct, but please note, the cmd only take effect in session scope. If you exit current bash, you'll lose your setting.
To fix this, you need to edit /etc/wsl.conf. and put below config in.
[automount]
enabled = true
options = "metadata"
Ref:
Automatically Configuring WSL
Chmod/Chown WSL Improvements
回答2:
There was an update to WSL recently (source), which lets you change permissions to files (Insider Build 17063).
All you have to do is to run:
sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata
回答3:
Both Amades and Chaos answers are correct.
But it only works for local drives not for mapped network drives. Z: is one of my network drives. Same operation on /mnt/c/Users/xxx/
works fine.
$sudo mount -t drvfs Z: /mnt/z -o metadata
$touch test
$chmod +w test
chmod: changing permissions of 'test': Operation not permitted
This is a known issue, see drvfs: metadata (chmod\chown) possible for mounted SMB drives?
来源:https://stackoverflow.com/questions/46610256/chmod-wsl-bash-doesnt-work