hack のためのネタ帳, etc,,,

概要

allow_root しておくと、WSL2 上で sshfs で mount した内容を Windows 側から参照できてしまった。
つまり、原理的に Linux 上で利用可能なすべての fuse について Windows 側からアクセスが可能。
事実上、Windows10 標準機能として fuse が搭載されてしまったに等しい。
こ、これ、革命的じゃね?
WSL1 がどうだったのかは要確認だけど、WSL2、地味にキラーアプリ過ぎるでしょ。

2020-06-23: 追記
WSL1 では、以下のように fuse 用の kernel module がないらしく sshfs 自体が出来なかった。
$ sshfs -o allow_root ${HOST}:${DIR} ${MOUNTPOINT}
fuse: device not found, try 'modprobe fuse' first
$ sudo modprobe fuse
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.4.0-18362-Microsoft
$ ls -l /lib/modules
total 0

準備

まず sshfs を install する
sudo apt install sshfs
次に、/etc/fuse.conf の以下の行をアンコメントして有効にする。
#user_allow_other

WSL2 上での mount/unmount

以下のようにして適当な場所にマウントする
sshfs -o allow_root $HOST:$DIR $MOUNTPOINT
アンマウントは
fusermount -u $MOUNTPOINT

Windows 側からのアクセス

wslpath で \\wsl$\... 以下のパスに変換してやると Windows 側の各種プログラムからアクセスできる。
例えば以下のようにすると explorer から参照できる。
explorer.exe "$(wslpath -w $MOUNTPOINT)"

なお mount の際 allow_root オプションがないと、以下のようなダイアログが表示されてアクセスできない。
フォルダを開く
----------------------------------------------------
⊗ \\swl$\... にアクセスできません。このネットワーク リソースを使用するアクセス
許可がない可能性があります。アクセス許可があるかどうかこのサーバーの管理者に問い合わせてください。

無効なアドレスにアクセスしようとしています。
[OK]

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です