WSL için Dosya İzinleri

Bu sayfada, özellikle NT dosya sistemindeki Windows'un içindeki kaynaklara erişirken Linux dosya izinlerinin Linux için Windows Alt Sistemi genelinde nasıl yorumlandığı açıklanır. Bu belgelerde Linux dosya sistemi izin yapısı ve umask komutu hakkında temel bilgiler yer alır.

WSL'den Windows dosyalarına erişirken, dosya izinleri Windows izinlerinden hesaplanır veya WSL tarafından dosyaya eklenmiş meta verilerden okunur. Bu meta veriler varsayılan olarak etkin değildir.

Windows dosyalarında WSL meta verileri

WSL'de bağlama seçeneği olarak meta veriler etkinleştirildiğinde, Linux dosya sistemi izinlerini sağlamak için Windows NT dosyalarındaki genişletilmiş öznitelikler eklenebilir ve yorumlanabilir.

WSL dört NTFS genişletilmiş özniteliği ekleyebilir:

Öznitelik Adı Açıklama
$LXUID Kullanıcı Sahibi Kimliği
$LXGID Grup Sahibi Kimliği
$LXMOD Dosya modu (Dosya sistemleri sekizli izinler ve tür, örneğin: 0777)
$LXDEV Cihaz, cihaz dosyasıysa

Ayrıca, normal bir dosya veya dizin olmayan tüm dosyalar (örneğin, symlink'ler, FIPO'lar, blok cihazları, unix yuvaları ve karakter cihazları) bir NTFS yeniden ayrıştırma noktasına da sahiptir. Bu, genişletilmiş özniteliklerini sorgulamak zorunda kalmadan belirli bir dizindeki dosya türünü belirlemeyi çok daha hızlı hale getirir.

Dosya Erişim Senaryoları

Linux için Windows Alt Sistemi'ni kullanarak dosyalara farklı şekillerde erişirken izinlerin nasıl belirlendiğinin bir açıklaması aşağıdadır.

Linux'tan Windows sürücü dosya sistemindeki (DrvFS) Dosyalara erişme

Bu senaryolar, Windows dosyalarınıza büyük olasılıkla aracılığıyla /mnt/cWSL'den eriştiğinizde oluşur.

Mevcut bir Windows dosyasından dosya izinlerini okuma

Sonuç, dosyanın zaten var olan meta verileri olup olmadığını bağlıdır.

DrvFS dosyasında meta veriler yok (varsayılan)

Dosyayla ilişkilendirilmiş meta veri yoksa, Windows kullanıcısının etkin izinlerini bitleri okumak/yazmak/yürütmek için çeviririz ve bunları kullanıcı, grup ve diğer kullanıcılar için aynı değer olarak ayarlarız. Örneğin, Windows kullanıcı hesabınızın okuma ve yürütme erişimi varsa ancak dosyaya yazma erişimi yoksa, bu kullanıcı, grup ve diğer kullanıcılar için olarak r-x gösterilir. Dosyada Windows'da 'Salt Okunur' özniteliği ayarlanmışsa Linux'ta yazma erişimi vermeyeceğiz.

Dosyada meta veriler var

Dosyada meta veriler varsa, Windows kullanıcısının etkin izinlerini çevirmek yerine yalnızca bu meta veri değerlerini kullanırız.

Chmod kullanarak var olan bir Windows dosyasındaki dosya izinlerini değiştirme

Sonuç, dosyanın zaten var olan meta verileri olup olmadığını bağlıdır.

chmod dosyasının meta verileri yok (varsayılan)

Chmod yalnızca bir etkiye sahip olur, bir dosyanın tüm yazma özniteliklerini kaldırırsanız Windows dosyasındaki 'salt okunur' özniteliği ayarlanır çünkü bu, Linux'taki SMB (Sunucu İleti Bloğu) istemcisi olan CIFS (Ortak İnternet Dosya Sistemi) ile aynı davranıştır.

chmod dosyasında meta veriler var

Chmod, dosyanın zaten var olan meta verilerine bağlı olarak meta verileri değiştirir veya ekler.

Meta veriler böyle dese bile kendinize Windows'ta sahip olduğunuzdan daha fazla erişim veremeyeceğinizi unutmayın. Örneğin, kullanarak chmod 777bir dosyaya yazma izinlerinizin olduğunu görüntülemek için meta verileri ayarlayabilirsiniz, ancak bu dosyaya erişmeye çalışırsanız, dosyaya hala yazamazsınız. Windows dosyalarına yönelik tüm okuma veya yazma komutları Windows kullanıcı izinleriniz aracılığıyla yönlendirildiğinden, bu birlikte çalışabilirlik sayesindedir.

DriveFS'de dosya oluşturma

Sonuç, meta verilerin etkinleştirilip etkinleştirilmediğini gösterir.

Meta veriler etkin değil (varsayılan)

Yeni oluşturulan dosyanın Windows izinleri, dosyayı belirli bir güvenlik tanımlayıcısı olmadan Windows'ta oluşturmuş olmanızla aynı olur ve üst öğenin izinlerini devralır.

Meta veriler etkinleştirildi

Dosyanın izin bitleri Linux umask'ı izleyecek şekilde ayarlanır ve dosya meta verilerle kaydedilir.

Dosyanın sahibi Hangi Linux kullanıcısı ve Linux grubu?

Sonuç, dosyanın zaten var olan meta verileri olup olmadığını bağlıdır.

Kullanıcı dosyasında meta veriler yok (varsayılan)

Varsayılan senaryoda, Windows sürücülerini otomatik olarak eklerken, herhangi bir dosya için kullanıcı kimliğinin (UID) WSL kullanıcınızın kullanıcı kimliğine, grup kimliğinin (GID) ise WSL kullanıcınızın asıl grup kimliğine ayarlandığını belirtiriz.

Kullanıcı dosyasında meta veriler var

Meta verilerde belirtilen UID ve GID, dosyanın kullanıcı sahibi ve grup sahibi olarak uygulanır.

Kullanarak Windows'tan Linux dosyalarına erişme \\wsl$

Aracılığıyla \\wsl$ Linux dosyalarına erişmek, WSL dağıtımınızın varsayılan kullanıcısını kullanır. Bu nedenle, Linux dosyalarına erişen tüm Windows uygulamaları varsayılan kullanıcıyla aynı izinlere sahip olur.

Yeni dosya oluşturma

Windows'tan WSL dağıtımı içinde yeni bir dosya oluşturulurken varsayılan umask uygulanır. Varsayılan umask şeklindedir 022veya başka bir deyişle, gruplara ve diğer kişilere yazma izinleri dışında tüm izinlere izin verir.

Linux kök dosya sistemindeki dosyalara Linux'tan erişme

Linux kök dosya sisteminde oluşturulan, değiştirilen veya erişilen tüm dosyalar, umask'ı yeni oluşturulan bir dosyaya uygulama gibi standart Linux kurallarına uyar.

Dosya izinlerini yapılandırma

wsl.conf dosyasındaki bağlama seçeneklerini kullanarak Windows sürücülerinizin içinde dosya izinlerinizi yapılandırabilirsiniz. Bağlama seçenekleri, dmask ve fmask izin maskelerini ayarlamanıza umaskolanak sağlar. umask tüm dosyalara uygulanır, dmask yalnızca dizinlere uygulanır ve fmask yalnızca dosyalara uygulanır. Bu izin maskeleri daha sonra dosyalara uygulanırken bir mantıksal OR işlemi aracılığıyla uygulanır; örneğin: değeriniz ve değeriniz umask023022 varsa, dosyalar için sonuçta elde edilen izin maskesi olur023.fmask

Daha fazla bilgi edinin: wsl.conf ile dağıtım yapılandırma seçenekleri başına.