生活の跡

個人的な備忘録

Linux環境(WSL)のファイルが、Windows10にインストールしたBracketsで編集できない

経緯

Windows10にLinux環境(WSL)を構築し、GatsbyJSでWebページを作成していました。

しかし、Windows10にインストールしたエディタ「Brackets」でCSSのファイルを編集しようとすると、「ファイルを変更する権限がありません。」というエラーが出てしまって編集できなくなりました。

f:id:ishii-akihiro:20210213211856j:plain
エラーメッセージ「ファイルを変更する権限がありません」

環境

  • OS:Windows10 Home
  • 編集したいファイルはLinux環境(WSL2)に置いてある
  • 編集するためのエディタ(Brackets)はWindows10にインストールしてある

原因調査

気になったのは、Bracketsで編集できるファイルもあったことです。エラーメッセージから察するに権限が違うのだろうと思い、WSLで$ ls -lによる比較をしてみました。

すると、編集できるファイルは所有者も所有グループも「akihiro」になっており、編集できないファイルは所有者も所有グループも「root」になっていました。

f:id:ishii-akihiro:20210213213217j:plain
編集できるファイル

f:id:ishii-akihiro:20210213213235j:plain
編集できないファイル

解決方法

そこで、編集できないファイルの所有者と所有グループを「akihiro」に変更したところ、無事にBracketsで編集できるようになりました(「akihiro」の部分は人によって違うのでご注意ください)。

所有者と所有グループは、次のように変更しました。

$ sudo chown akihiro:akihiro styles/*

上記のコマンドの意味は、「スーパーユーザー権限で、"styles"ディレクトリ内のすべてのファイルの所有者と所有グループを変更する。所有者は"akihiro"に、所有グループも"akihiro"に変更する」ということです。

試しに$ ls -lで確認すると、正しく変更されていました。

f:id:ishii-akihiro:20210213214104j:plain
所有者と所有グループが「akihiro」に変更された。

おわりに

Linuxの仕組みや権限について詳しくないので、なんとなくroot権限ならうまくいくと思っていました。しかし、今回の場合は所有者がrootだと上手くできないことがわかりました。

スーパーユーザーしか編集できないファイルに対して、akihiroがWindows10からアクセスしようとして拒否されたという感じでしょうか。理解できていないので説明はできませんが、ひとまず同じ問題にぶつかった方の解決策になれば幸いです。

参考

webkaru.net