Izin file yang dipasang WSL

6

Dalam pengujian WSL saya sebagai pengganti yang mungkin untuk bash git-untuk-windows dan lingkungan kerja kuasi-unix, saya telah menyiapkan symlink di dalam WSL untuk /home/me/.ssh/direktori saya ke direktori yang sesuai /mnt/c/users/me/.ssh/. Tidak terlalu mengejutkan (karena sshketat pada izin dir / file), ini tidak berfungsi:

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*

Saya mungkin membuat file di linux dan kemudian menemukan cara untuk menghubungkan dari windows ke sistem file linux ( %localappdata%/lxss/...), tetapi mereka sangat menyarankan agar tidak menggunakan alat windows untuk mengedit file linux (ref: https://blogs.msdn.microsoft.com/ commandline / 2016/11/17 / do-not-change-linux-files-using-windows-apps-and-tools / ), jadi setiap kali saya perlu mengubah sesuatu, saya harus melompat ke WSL. (Jika tidak ada yang lain, ini mungkin kompromi yang disukai, tapi ...)

Saya selalu dapat mempertahankan dua direktori yang berbeda (masing-masing lokal memiliki sistem), tetapi saya lebih suka membagikannya. Namun, gambaran yang lebih besar adalah bagaimana memodifikasi izin keamanan windows untuk meniru sifat-sifat filesystem linux yang cukup sehingga WSL melihat izin yang kami inginkan.

Izin saat ini pada WIN/.../.ssh/configfile adalah: SISTEM, saya, dan Administrator semua memiliki kontrol penuh. Ketika saya ingin mengubah SISTEM, itu memperingatkan saya tentang mewarisi izin dan semacamnya. Saya tahu bahwa hak akses dir / file windows berbeda dalam banyak hal, tetapi paling ...

T: apakah ada postur keamanan yang mudah untuk file / direktori windows sehingga WSL melihatnya sebagai akses hanya pengguna (pemilik)? (analog dengan umask dari 0077). Lebih umum lagi, adakah resep untuk memetakan setidaknya beberapa kesamaan antara ugopenugasan unix-y dan keamanan file Windows?

r2evans
sumber
chmoddi bash dan attribdi command prompt.
Biswapriyo
chmod -x somefiledalam WSL pada file windows-drive tidak berfungsi , dan bahkan mengeluh. Apakah Anda bisa mendapatkan hasil yang berbeda di komputer Anda, @Biswa? Tidak ada kombinasi dari delapan atribut di dalam attribyang menghasilkan sesuatu selain rwxrwxrwxatau r-xr-xr-xpada file WSL, atau memodifikasi perm seperti unix pada file pada win-drive.
r2evans

Jawaban:

8

Bagian WSL ini jauh lebih baik di build insider terbaru (yaitu, rilis Windows 10 berikutnya). Sejak build 17063 WSL menyimpan metadata Linux, jadi chmod dll pada file bersama "hanya berfungsi" tanpa mengubah ACL di sisi Windows. Saya sekarang memasang direktori home saya dari profil pengguna saya seperti yang Anda sarankan, dan SSH berfungsi dengan baik.

Inilah pengaturan saya:

$ 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.
sumber
Itu agak meyakinkan, bahkan jika saya belum memiliki bangunan itu (orang dalam?). Sesuatu yang dinanti-nantikan. Terima kasih! (Saya akan menunda menerima ini sampai saya bermain dengannya sendiri (pada bulan Maret, saya pikir).
r2evans
Ya, Anda bisa mendapatkannya di dalam orang dalam saat ini, atau menunggu rilis berikutnya.
ab.
Hey @ab., Bisakah Anda menjelaskan dengan tepat apa yang Anda lakukan? Saya menggunakan Orang Dalam tapi saya tidak bisa mendapatkan izin SSH untuk bekerja. Saya hanya mencoba untuk symlink file, tidak memasang direktori home secara keseluruhan. Namun, dapatkah Anda memberikan instruksi tentang apa yang Anda lakukan?
Ricardo Amaral
@ RicardoAmaral Saya pikir mereka poin-poin utama adalah pastikan Anda memiliki opsi "metadata" diaktifkan pada mountpoint drvfs (/etc/wsl.conf dapat membantu dengan itu), baik symlink / home atau ubah passwd sehingga ~ on / mnt / c , dan kemudian symlink dan izin tetap seperti yang Anda harapkan.
ab.
1
Tidak dapat menemukan /etc/wsl.conf di WSL saya.
Basil A