Дозволи на встановлений WSL файл


6

Під час мого тестування WSL як можливої ​​заміни для git-for-windows bash та quasi-unix робочого середовища, я створив симпосилання в WSL для свого /home/me/.ssh/каталогу до відповідного /mnt/c/users/me/.ssh/каталогу. Не надто дивно (оскільки sshсуворо щодо дозволів на dir / файл), це не працює:

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, я та адміністратори мають повний контроль. Коли я хочу змінити СИСТЕМУ, вона попереджає мене про успадкування дозволів тощо. Я знаю, що права доступу до файлів / файлів Windows багато в чому різняться, але в кінцевому рахунку ...

Питання: чи існує легка позиція безпеки для файлів / dir-файлів Windows, щоб WSL розглядав їх як доступ лише для користувачів (власника)? (аналог умаска 0077). Більш загально, чи є рецепт відображення принаймні деякої подібності між завданнями ugounix-y та захищеністю файлів Windows?


chmodв bash і attribв командному рядку.
Бісвапріо

chmod -x somefileвсередині WSL на файлі Windows-накопичувача не працює , і навіть скаржиться. Чи можете ви отримати різні результати на своєму комп’ютері, @Biswa? Там немає комбінації з восьми атрибутів в межах , attribякі роблять щось інше , ніж rwxrwxrwxабо r-xr-xr-xна файл WSL або змінити Unix-подібну завивку на файли на диску виграшу.
r2evans

Відповіді:


8

Ця частина 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

Це дещо заспокоює, навіть якщо я ще не маю такої збірки (інсайдер?). Щось з нетерпінням чекати. Дякую! (Я
відмовлюсь

Так, ви можете отримати його в поточній інсайдерській збірці або чекати наступного випуску.
аб.

Гей, @ab., Ти можеш уточнити, що саме ти робив? Я перебуваю на "Інсайдерах", але просто не можу отримати дозвіл SSH для роботи. Я намагаюся лише символізувати файли, але не монтую весь домашній каталог. Все-таки ви можете дати вказівки щодо того, що ви робили?
Рікардо Амарал

@RicardoAmaral Я думаю, що ключові моменти - переконайтеся, що у вас включена опція "метадані" на точці монтажу drvfs (/etc/wsl.conf може допомогти у цьому), або посилання посилання / home, або зміна passwd, так що ~ ввімкнено / mnt / c , а потім посилання та дозволи дотримуються, як ви очікували.
аб.

1
Не можу знайти /etc/wsl.conf на моєму WSL.
Василь А
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.