3

В моем тестировании WSL в качестве возможной замены рабочей среды gash -for-windows bash и quasi-unix я установил символическую ссылку в WSL для моего /home/me/.ssh/ на соответствующий /mnt/c/users/me/.ssh/ direcory. Не слишком удивительно (так как ssh является строгим для разрешений dir/file), это не работает:

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*

Я мог бы создать файлы в Linux, а затем найти способ связать Windows с файловой системой Linux (%localappdata%/lxss/...), но они настоятельно рекомендуют не использовать инструменты Windows для редактирования файлов Linux (ссылка: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/), поэтому, когда мне нужно что-то настроить, я должен прыгать в WSL. (Если ничего другого, это может быть предпочтительным компромиссом, но ...)

Я всегда могу поддерживать две разные директории (каждая локальная для собственной системы), но я бы предпочел поделиться ими. Тем не менее, более широкая картина состоит в том, как изменить разрешения безопасности Windows, чтобы имитировать достаточно свойств файловой системы Linux, чтобы WSL видел наши конечные требуемые разрешения.

Текущие разрешения на WIN/.../.ssh/config : SYSTEM, me и Administrators имеют полный контроль. Когда я хочу изменить SYSTEM, он предупреждает меня о наследовании разрешений и тому подобном. Я знаю, что права доступа к файлам / каталогам Windows во многом различны, но в конечном итоге ...

Вопрос: существует ли простое положение безопасности для файлов / каталогов Windows, так что WSL рассматривает их как доступ только для пользователя (владельца)? (аналог 0077). В более общем смысле, существует ли рецепт для сопоставления хотя бы некоторого сходства между назначениями ugo unix-y и безопасностью файлов Windows?

1 ответ1

7

Эта часть WSL намного лучше в последних инсайдерских сборках (то есть в следующем выпуске Windows 10). Начиная с сборки 17063 WSL хранит метаданные Linux, поэтому chmod и т.д. В общих файлах "просто работают" без изменения ACL на стороне Windows. Сейчас я монтирую свой домашний каталог из своего профиля пользователя так, как вы предлагаете, и SSH работает отлично.

Вот мои настройки:

$ 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .