Dateiberechtigungen für Ubuntu Bash für Windows 10 können nicht geändert werden

Ich habe versucht, eine ssh-Instanz zu verwenden, und ich habe diesen Fehler erhalten:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         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).

Was ungerade ist. Ich habe versucht, die Berechtigung mit dem Befehl 'chmod' zu ändern, aber das schien nicht zu funktionieren. Die Bash hatte den Eindruck, dass sich der Befehl registriert hat, aber ich habe die Berechtigungen des Schlüssels überprüft und er war immer noch bei 777. Ich habe meine git Bash geöffnet und konnte problemlos in meine Instanz ssh, und die Berechtigungen waren auch nicht 777.

Author: iii, 2018-05-17

5 answers

Wenn Sie auf Dateien im Windows-Dateisystem verweisen, behalten diese standardmäßig keine Linux-Berechtigungen bei. Es gibt jedoch eine Möglichkeit, dies zu aktivieren. Bearbeiten oder erstellen (mit sudo) /etc/wsl.conf und fügen Sie Folgendes hinzu:

[automount]
options = "metadata"

Fahren Sie alle WSL-Instanzen herunter und starten Sie eine Instanz neu, und alle Änderungen an chmod bleiben erhalten.

 66
Author: nilskp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-07-27 07:52:04

Ist der private Schlüssel in Ihrem Windows-Dateisystem (unter /mnt/)? Sie können die Berechtigungen von Dateien im Windows-Dateisystem nicht mit chmod auf Bash unter Ubuntu unter Windows ändern. Sie müssen den privaten Schlüssel in Ihr WSL-Homeverzeichnis (~) kopieren und dort ausführen.

Einige Diskussionen hier: https://github.com/Microsoft/WSL/issues/81

 19
Author: erobertc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-05-17 17:05:34

Der richtige Weg, dies zu handhaben:

  1. Erstellen Sie eine Datei mit dem Namen /etc/wsl.conf und bearbeiten Sie sie so, dass sie Folgendes enthält:
    [automount]
    enabled = true
    root = /mnt/
    options = "metadata,umask=22,fmask=11"

Um die Bedeutung der einzelnen Parameter oben zu verstehen, lesen Sie bitte diesen Artikel auf msdn: https://blogs.msdn.microsoft.com/commandline/2018/02/07/automatically-configuring-wsl/

  1. Schließen Sie alle geöffneten WSL-Terminals und öffnen Sie ein neues.

Jetzt sind Sie alle gesetzt, das Ändern der Berechtigungen einer Datei in Windows von /mnt / c / wird korrekt auf dem Linux-Subsystem durch die WSL "Metadaten" - Funktion reflektiert.

Die WSL-Konfiguration wird beim Start von WSL immer korrekt eingebunden.

 16
Author: Basil A,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-10 11:44:50

Ich habe einen Alias erstellt, der in meine ~/.bashrc - Datei geladen wird und es ermöglicht, das Laufwerk C:/ im Ordner /mnt/c/ mit den Berechtigungen `Metadaten ' zu entfernen.

alias win-chmod="cd ~ && sudo umount /mnt/c && sudo mount -t drvfs C: /mnt/c -o metadata && cd -"

Dadurch kann ich chmod nur aktivieren, wenn ich es brauche, um unerwünschte Änderungen am eingehängten Dateisystem zu verhindern. Es geht nur darum,

$ ls -l | grep myfile
-rwxrwxrwx 1 root root          0 Dec 12 16:34 myfile.txt
$ win-chmod
/mnt/c/Users/myself/Documents/myfolder
$ chmod 666 myfile.txt
$ ls -l | grep myfile
-rw-rw-rw- 1 root root          0 Dec 12 16:34 myfile.txt
 5
Author: Salvioner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-12-12 16:17:59

Kopieren Sie die Schlüsseldatei an eine beliebige Stelle im Linux-Subsystem, ändern Sie die Berechtigung und stellen Sie eine Verbindung her.

cp /mnt/path/to/key/file /home/$USER/

chmod 400 /home/$USER/key_file_name.pem

 1
Author: ashwini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-08-02 14:26:22