Windows 上 Ubuntu 上的 Bash 在启动时出现错误“-bash: /home/user/.bashrc: 权限被拒绝”

Windows 上 Ubuntu 上的 Bash 在启动时出现错误“-bash: /home/user/.bashrc: 权限被拒绝”

为了学习 Linux,我在 Windows 上的 Unbuntu 上使用 Bash,因此我尝试编辑 .bashrc 文件作为学习方式。为此,我进入 C: 驱动器的根文件夹并在 VS Code 中打开 .bashrc。我在文件末尾添加了一行。

当我尝试运行 ubuntu 时,出现了这个错误(尽管它仍然有效),而且在我尝试撤消之前的操作后,错误仍然存​​在。出了什么问题?

答案1

怎么了?

正如你提到的,你进入了 C: 驱动器的根文件夹并在 VSCode 中打开了 .bashrc,我假设你刚刚使用的 VSCode 安装在 Windows 上,而不是 WSL 上。现在我想向你推荐一个博客文章在微软的官方博客上解释了您所遇到的具体情况。也会有帮助。

要恢复更改,我建议您以与之前相同的方式打开 .bashrc,并将其所有内容复制到另一个文件(例如桌面上)。删除 .bashrc 文件。现在在 WSL 中打开文本编辑器(最好是 vim 或 gedit),创建一个名为 .bashrc 的文件,将其保存在主目录中,然后将您保存在桌面上的所有文本复制到新的 .bashrc,一切就完成了。

答案2

一旦启动 shell 并且看到此错误,请“重置”该文件的权限。


尝试这个

1)去cd /home/{USER}/那里

2)更改权限chmod 644 .bashrc


笔记:

1)对我来说,它不需要sudo

2)644表示对用户可写、可读、可执行,对组和其他人可读


我遇到这个问题是因为我.bash***在 Windows 上使用 Notepad++ 编辑了一些文件。保存文件后,Ubuntu 上不再可执行这些文件。

我不想像@DeusExMachina 提到的那样复制、保存、重新创建更改,而是想看看那里的文件权限发生了什么。

我进入我的主目录并检查了每个文件的权限,我发现我编辑的文件.bashrc现在.bash_aliases具有权限000- 所以它们被 Windows 锁定了!

我将我编辑的文件的权限从 更改为000并且644它又可以正常工作了。

答案3

我遇到了同样的问题。为了解决这个问题,我只需使用sudo chmod -R DELETED /home/user/.bashrc,它就起作用了。

这篇文章建议使用模式 0777,这是一个糟糕的想法,你永远不应该使用。这意味着任何人都可以在这个系统上冒充你。

相关内容