chmod WSL (Bash) doesn't work

不羁岁月 提交于 2019-12-21 06:56:27

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!