blogこの広告は、90日以上更新していないブログに表示しています。Linux)により、Windows上でもLinuxが動くようになった。本格的に用いるにはまだまだ怖い点がいくつか残っており、その一つのファイルパーミッションの問題を解決しようとしてみた話。VSCodeでSSHFSを用いてWSL上のファイルを編集する。手順TODO:終わりにあとがきはじめにWSLにより、Windows上でLinuxが動くようになった。制約はもちろんあり、最も大きな問題の一つとしてファイルパーミッションの問題がある。Windows側にはLinuxのようなファイルパーミッションのしくみはないので当然といえば当然なのだが、WSL側でパーミッションを指定して作ったファイルをWindows側に持っていくとその時点でパーミッション情報が失われ、またWSL側に戻してきても情報は失われているのでファイルは正しくない状態のままとなる。WSL上でtest.txtを作り、パーミッションを確認すると、ファイルはパーミッション666で作られていることがわかる。パーミッションを644に変更してみた。WSL上では、Windows側のフォルダは/mnt/c/などにある。Windows側にファイルを動かしてみる。ファイルパーミッションは777になってしまった。元の場所に戻してみる。無事、もとに戻りませんでした\(^o^)/問題点このマシンだけで個人開発するのなら、ファイルパーミッションが壊れてようがそんなに問題は大きくないが、他人や他のLinuxのマシンでも開発する場合はファイルパーミッションをいちいち壊されても困る。update-indexみたいな機能もあるみたいだけど、それはなんか違う気がする。やりたいことWindows側にあるVSCodeでファイルを編集したい。WSL上で例えばVimとか使って編集すればいい話ではあるが、GUIエディタを使いたいときもある。そこでVSCodeで開くために、編集したいファイルを/mnt/c/に持ってきたところ、ファイルのパーミッションがだめになっていた。解決策SSHFSで繋げば思っていたことが実現できた。手順WSLにopensshを入れる。使用する(memo:公開鍵認証を用いる場合は/etc/ssh/に用いる形式の鍵がないと通らない。configurationから、設定ファイル名入れると、勝手にjsonの雛形ができる。必要な情報を入れるだけ。私の場合はRSAを使ったのでこんな感じ。(memo:秘密鍵の改行は\nに置換する必要がある。これもVSCodeなら秘密鍵をVSCodeで開いて「Ctrl-F」で正規表現モードで「\n」を「\\n」に置換すればよい。FSがSSH2に依存していて、そのSSH2はopensslがnodeに依存していて、nodeがOpenSSL1.1.x系にまだ対応していない。そのためed25519は使えないみたい。Serverが動いている状態でconnectしてやると、VSCode上でWSLのファイルが見え、編集できる。ここで編集しても、パーミッションは壊れない!というわけで、WSL上のファイルをWindows側のVSCodeで編集できるようになった。ServerをWindows起動と同時に実行するようにする(まだやってなかった)WSLでファイルやフォルダを作ったとき、それがVSCodeには即座に反映されない。更新ボタンを押すことにより反映される。自動で更新したいが、更新するためには「workbench.files.action.refreshFilesExplorer」を呼べばいいことはわかったが、呼び出してしまうとフォーカスがエクスプローラーに移ってしまう。定期的にフォーカスがエディタから取られてしまうのは非常にストレスだった。なにか書いているときにも、ファイルやフォルダが変われば自動で反映してほしい。終わりにちょっとだけWindowsで開発できる環境に近づいた、ような気がする。(もう少し使いやすくなってほしいな。)あとがきこのブログでまともな技術記事書いたの初めてな気がする、こういうのはQiitaに上げたほうがいいのだろうか。応募用紙どうも、馬です。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事ISUCON8予選で惨敗してきた話ISHOCON2に参加して来たよ!ISHOCON1をScalaで書いたお気持ちWSLとファイルパーミッションとVSCodeの話ISHOCON1をCrystalで書いたお気持ち月別アーカイブ参加グループプログラミングはてなブログをはじめよう!Goryudyumaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。