web-dev-qa-db-ja.com

Windows 10用Ubuntu Bashのファイル権限を変更できない

私はsshインスタンスを使おうとしていました、そして、私はこのエラーを受け取りました:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for 'privkey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "privkey.pem": bad permissions
Permission denied (publickey).

これは奇妙です。私は 'chmod'コマンドを使用して許可を変更しようとしましたが、それはうまくいかないようでした。 bashはコマンドが登録されているような印象を与えましたが、私はキーのパーミッションをチェックしました、そしてそれはまだ777にありました。そうですね。

7
iii

Windowsファイルシステム内のファイルを参照している場合、それらはデフォルトではLinuxのアクセス権を保持しません。しかし、それを可能にする方法があります。 /etc/wsl.confを編集または作成し(Sudoを使用)、以下を追加します。

[automount]
options = "metadata"

すべてのWSLインスタンスをシャットダウンしてインスタンスを再起動すると、chmodの変更は保持されます。

17
nilskp

Windowsファイルシステムの秘密鍵(/ mnt /以下)はありますか? Windows上のUbuntu上のBash上でchmodを使用して、Windowsのファイルシステム上のファイルのアクセス権を変更することはできません。秘密鍵を自分のWSLホームディレクトリ(〜)にコピーして、そこで作成する必要があります。

ここでいくつかの議論: https://github.com/Microsoft/WSL/issues/81

9
erobertc

これを処理する正しい方法:

  1. /etc/wsl.confという名前のファイルを作成し、以下を含むように編集します。
    [automount]
    enabled = true
    root = /mnt/
    options = "metadata,umask=22,fmask=11"

上記の各パラメータの意味を理解するには、msdnのこの記事を参照してください。 https://blogs.msdn.Microsoft.com/commandline/2018/02/07/automatically-configuring-wsl/

  1. 開いているWSL端末をすべて閉じてから、新しい端末を開きます。

これで設定は完了しました。Windows内のファイルのアクセス権を/ mnt/c /から変更しても、WSLの「メタデータ」機能を通じてLinuxサブシステムに正しく反映されます。

WSLの設定はWSLの起動時に常に正しくマウントされます。

4
Basil A