WSL gemountete Dateiberechtigungen

6

Beim Testen der WSL als möglicher Ersatz für die Arbeitsumgebung "git-for-windows bash" und "quasi-unix" habe ich in der WSL einen Symlink für mein /home/me/.ssh/Verzeichnis zum entsprechenden /mnt/c/users/me/.ssh/Verzeichnis eingerichtet. Nicht allzu überraschend (da die sshdir / file-Berechtigungen streng sind), funktioniert dies nicht:

me@d2book:~$ ssh myth
Bad owner or permissions on /home/me/.ssh/config

me@d2book:~$ ll -d .ssh .ssh/config
lrwxrwxrwx 1 me   me     20 Oct 16 13:12 .ssh -> /mnt/c/Users/me/.ssh/
-rwxrwxrwx 1 root root 6335 Dec  5 07:47 .ssh/config*

Möglicherweise erstelle ich die Dateien unter Linux und finde dann eine Möglichkeit, von Windows aus eine Verknüpfung zum Linux-Dateisystem ( %localappdata%/lxss/...) herzustellen. Es wird jedoch dringend davon abgeraten, Windows-Tools zum Bearbeiten von Linux-Dateien zu verwenden (siehe https://blogs.msdn.microsoft.com/). befehlszeile / 2016/11/17 / ändere-nicht-linux-dateien-unter-verwendung-von-windows-apps-und-werkzeugen / ), also muss ich immer, wenn ich etwas optimieren muss, in die WSL springen. (Wenn nichts anderes, könnte dies der bevorzugte Kompromiss sein, aber ...)

Ich kann immer zwei verschiedene Verzeichnisse verwalten (jedes lokal für ein eigenes System), aber ich würde es vorziehen, sie gemeinsam zu nutzen. Im Großen und Ganzen können Sie jedoch die Windows-Sicherheitsberechtigungen so ändern, dass genügend Eigenschaften des Linux-Dateisystems imitiert werden, sodass die WSL die gewünschten Berechtigungen erkennt.

Die aktuellen Berechtigungen für die WIN/.../.ssh/configDateien lauten: SYSTEM, ich und Administratoren haben alle die volle Kontrolle. Wenn ich SYSTEM ändern möchte, warnt es mich vor der Vererbung von Berechtigungen und dergleichen. Ich weiß, dass Windows Dir / Dateiberechtigungen in vielerlei Hinsicht unterschiedlich sind, aber ultimative ...

F: Gibt es eine einfache Sicherheitsposition für Windows-Dateien / -Verzeichnisse, so dass WSL sie als Nur-Benutzer- (Eigentümer-) Zugriff ansieht? (analog zu einer umask von 0077). Gibt es ein Rezept für die Zuordnung von mindestens einer Ähnlichkeit zwischen den ugoUnix-y-Zuweisungen und der Windows-Dateisicherheit?

r2evans
quelle
chmodin Bash und attribin der Eingabeaufforderung.
Biswapriyo
chmod -x somefileinnerhalb der WSL auf einem Windows-Laufwerk funktioniert die Datei nicht und beschwert sich sogar. Können Sie auf Ihrem Computer, @Biswa, unterschiedliche Ergebnisse erzielen? Es gibt keine Kombination der acht Attribute attrib, die etwas anderes als rwxrwxrwxoder r-xr-xr-xfür eine WSL-Datei erzeugen oder unixartige Perms für Dateien auf dem Win-Laufwerk ändern.
r2evans

Antworten:

8

Dieser Teil der WSL ist in den neuesten Insider-Builds (dh der nächsten Windows 10-Version) viel besser. Seit Build 17063 speichert WSL die Linux-Metadaten, sodass chmod usw. für freigegebene Dateien "nur funktioniert", ohne die ACLs auf der Windows-Seite zu ändern. Ich mounte jetzt mein Home-Verzeichnis von meinem Benutzerprofil aus, so wie Sie es wünschen, und SSH funktioniert einwandfrei.

Hier ist mein Setup:

$ cat /etc/wsl.conf
[automount]
enabled=true
options=metadata,uid=1000,gid=1000,umask=022
$ mount | grep /mnt
C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,umask=22,metadata)
$ echo $HOME
/mnt/c/Users/me
$ ls -ld /home
lrwxrwxrwx 1 root root 11 Jan 11 16:15 /home -> mnt/c/Users
$ ls -ld ~/.ssh
drwxr-xr-x 1 me me 4096 Feb 27 11:44 /mnt/c/Users/me/.ssh
$ ls -ld ~/.ssh/authorized_keys
-rw-r--r-- 1 me me 745 Feb 27 11:44 /mnt/c/Users/me/.ssh/authorized_keys
$ ls -ld ~/.ssh/config
lrwxrwxrwx 1 me me 29 Oct  6 14:14 /mnt/c/Users/me/.ssh/config -> ../share/dotfiles/.ssh/config
$ ls -l ~/share/dotfiles/.ssh/config
-rwxr-xr-x 1 me me 741 Feb 26 21:23 /mnt/c/Users/me/share/dotfiles/.ssh/config
ab.
quelle
Das ist etwas beruhigend, auch wenn ich diesen Build noch nicht habe (Insider?). Etwas worauf man sich freuen kann. Vielen Dank! (Ich werde es erst akzeptieren, wenn ich persönlich damit spiele (glaube ich im März).
r2evans
Ja, Sie können es in einem aktuellen Insider-Build herunterladen oder auf die nächste Veröffentlichung warten.
ab.
Hey @ab., Kannst du genau klären, was du getan hast? Ich bin bei Insidern, aber ich bekomme keine SSH-Berechtigungen zum Arbeiten. Ich versuche jedoch nur, die Dateien zu verknüpfen, nicht das gesamte Basisverzeichnis. Können Sie trotzdem Anweisungen geben, was Sie getan haben?
Ricardo Amaral
@RicardoAmaral Ich denke, die wichtigsten Punkte sind, stellen Sie sicher, dass Sie die "Metadaten" -Option auf dem drvfs-Mountpoint aktiviert haben (/etc/wsl.conf kann dabei helfen), entweder symlink / home oder passwd so ändern, dass ~ on / mnt / c ist und dann bleiben Symlinks und Berechtigungen wie erwartet erhalten.
ab.
1
Ich kann /etc/wsl.conf auf meiner WSL nicht finden.
Basil A