経緯
Windows10にLinux環境(WSL)を構築し、GatsbyJSでWebページを作成していました。
しかし、Windows10にインストールしたエディタ「Brackets」でCSSのファイルを編集しようとすると、「ファイルを変更する権限がありません。」というエラーが出てしまって編集できなくなりました。
エラーメッセージ「ファイルを変更する権限がありません」
環境
- OS:Windows10 Home
- 編集したいファイルはLinux環境(WSL2)に置いてある
- 編集するためのエディタ(Brackets)はWindows10にインストールしてある
原因調査
気になったのは、Bracketsで編集できるファイルもあったことです。エラーメッセージから察するに権限が違うのだろうと思い、WSLで$ ls -l
による比較をしてみました。
すると、編集できるファイルは所有者も所有グループも「akihiro」になっており、編集できないファイルは所有者も所有グループも「root」になっていました。
編集できるファイル
編集できないファイル
解決方法
そこで、編集できないファイルの所有者と所有グループを「akihiro」に変更したところ、無事にBracketsで編集できるようになりました(「akihiro」の部分は人によって違うのでご注意ください)。
所有者と所有グループは、次のように変更しました。
$ sudo chown akihiro:akihiro styles/*
上記のコマンドの意味は、「スーパーユーザー権限で、”styles”ディレクトリ内のすべてのファイルの所有者と所有グループを変更する。所有者は”akihiro”に、所有グループも”akihiro”に変更する」ということです。
試しに$ ls -l
で確認すると、正しく変更されていました。
おわりに
Linuxの仕組みや権限について詳しくないので、なんとなくroot権限ならうまくいくと思っていました。しかし、今回の場合は所有者がrootだと上手くできないことがわかりました。
スーパーユーザーしか編集できないファイルに対して、akihiroがWindows10からアクセスしようとして拒否されたという感じでしょうか。理解できていないので説明はできませんが、ひとまず同じ問題にぶつかった方の解決策になれば幸いです。