WSLで高権限のフォルダ等にアクセスする方法。

環境

Windows11

WSL:Ubuntu22.04LTS

問題

  • Windowsでファイルをダウンロードして、WSL側のフォルダに置く場合において、homeフォルダであれば問題ないが、/usr/local/binのように高権限が求められるケースでは、不都合が発生する。
  • 具体的には以下。
    • エクスプローラからアクセスしようとする場合、高権限が求められるが、おそらくLinux側の権限が求められるため、置くことができない
    • Linux側から/mnt/等で指定しようとする場合、デフォルトで作成するWSLのユーザではアクセスがままならず、suで移動・コピーしようとしてもAdministrator権限が求められる。
    • インストール時にAdministratorを作成しないし、そもそも上記のデフォルトで作成するユーザに高権限がついてるはずなのにアクセスできない状況なのがおかしい。
  • 上記の解決法として、WSL上ではなくPCの高権限をもって各種情報にアクセスできるようにする。
  • どちらかというとWSL特有の対応かなと思う。

手順

  1. 下記の方法でWSLの実行ファイルにアクセスできるようにする。
    https://qiita.com/tomoshin02/items/8e0478d1065893fef9ea
  2. 管理者としてWSLファイルを実行した場合、以下のコマンドが利用可能なのを確認する。
    cd /mnt/(Windows側のフォルダ)
    例:cd /mnt/C/ProgramData
  3. 2.を利用して、ダウンロードしたファイルがある場所を確認して、cpコマンドでファイルをコピーする。
    例:cp /mnt/C/ProgramData/sample.txt /usr/local/
  4. 3.がNGであれば、sudoを前に付与して3.を実行
  5. 高権限が必要な場所にアクセスする場合、Linux上の利用ユーザのパスワードが求められるので入力する。
  6. cdとかで移動するかエクスプローラ等でファイルの存在を確認して、コピーされてれば完了。