プログラミング

WindowsのWSL Bashで"chmod"がエラーになる・実行できない

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です