- Published on
WindowsのWSL Bashで"chmod"がエラーになる・実行できない
- Authors
- Name
- Shou Arisaka / 有坂翔
WindowsのWSL bashでchmodコマンドがエラー、または実行できないような状態になる場合があります。
例えば、ssh.keyファイルをブラウザーからダウンロードし、そのダウンロードフォルダにcdで移動してからchmod 400 ssh.key
などコマンドを実行しても、エラーになったり、コマンドは実行されているのだが実際にはファイルのパーミッションが何も変更されていない、うまく動作していない、といったケースです。
WSL 2に関してはこの問題が解決していのかもしれませんが、WSL(WSL 1)ではこの問題はいまだ顕在であり、 この問題は主にパーミッションを変更するファイルの場所がWSLのファイルシステムではなくWindowsのファイルシステム上に位置していることが要因とされています。
なので、例えばssh.keyファイルがC:/Users/user/Download/ssh.key
にある場合などです。 このような場合、ファイルをWSLのファイルスタンド~
(/home/user
や/home/user/.ssh
)へコピーまたは移動し、その位置からchmodコマンドを実行 (chmod 400 ~/.ssh/ssh.key
) しファイルのパーミッション変更を試します。
(参考)
referencing files in the Windows file system, they do not Unable to change file permissions on Ubuntu Bash for Windows 10 - Super User