Îmbunătățiri ale Chmod și Chown WSL în Windows 10
Utilizatorii Linux sunt cu siguranță familiarizați cu instrumentele consolei chown și chmod. Aceste două aplicații sunt esențiale atunci când vine vorba de gestionarea permisiunii și a proprietății. Recent, Microsoft a adus o serie de îmbunătățiri acestor instrumente în propriul subsistem Linux, împreună cu Windows 10.
Publicitate
Acum puteți seta proprietarul și grupul de fișiere folosind chmod/chown și puteți modifica permisiunile de citire/scriere/execuție în WSL. De asemenea, puteți crea fișiere speciale, cum ar fi fifos, socket-uri Unix și fișiere de dispozitiv. A fost o caracteristică mult așteptată de mulți utilizatori WSL.
O altă modificare interesantă este noile opțiuni de montare cu sistemul de fișiere DrvFs pentru proiectarea permisiunilor pe fișiere, alături de furnizarea de noi metadate Linux pe fișiere și foldere.
Există un pas pe care trebuie să îl faceți înainte de a vă putea bucura de aceste noi funcții: trebuie să demontați drvf-uri și să-l remontați cu marcajul „metadate”. Pentru a face acest lucru, introduceți următoarele comenzi în terminal:
sudo umount /mnt/c sudo mount -t drvfs C: /mnt/c -o metadate
Puteți verifica dacă s-a montat corect rulând „mount -l” pentru a vedea ceva de genul acesta:
DrvFs este un plugin de sistem de fișiere pentru WSL care adaugă suport pentru interoperabilitate între WSL și sistemul de fișiere Windows. DrvFs permite WSL să monteze unități cu sisteme de fișiere acceptate sub /mnt, cum ar fi /mnt/c, /mnt/d etc.
DrvFs adaugă o serie de noi opțiuni de montare. Acestea sunt după cum urmează:
Noile opțiuni de montare includ:
- uid: ID-ul utilizatorului folosit pentru proprietarul tuturor fișierelor
- gid: ID-ul grupului folosit pentru proprietarul tuturor fișierelor
- umask: o mască octală de permisiuni de exclus pentru toate fișierele și directoarele.
- fmask: o mască octală de permisiuni de exclus pentru toate fișierele obișnuite.
- dmask: o mască octală de permisiuni de exclus pentru toate directoarele.
Vezi următorul exemplu:
sudo mount -t drvfs C: /mnt/c -o metadate, uid=1000,gid=1000,umask=22,fmask=111
După executarea comenzii de montare, veți vedea montarea dvs. (în acest caz, C:) listată cu toți parametrii pe care i-ați transmis când căutați o listă de dispozitive montate.
Această modificare va permite montarea folderelor și partițiilor Windows sub alt cont de utilizator în WSL, mai degrabă unul implicit.
Odată cu această modificare, permisiunile Linux vor fi stocate ca metadate suplimentare pentru un fișier. Acest lucru va permite stocarea atât a permisiunilor Linux, cât și a Windows pentru un singur fișier. Acum puteți schimba permisiunile atât în WSL, cât și în Windows separat, fără a distruge mediul. După cum vă amintiți, modificarea fișierelor Linux din Windows ar putea rupe WSL mai devreme.
Fișierele nou create în WSL vor fi create implicit cu metadate și vor respecta opțiunile de montare pe care le-ați setat.
Avertismente importante
Există câteva lucruri de care trebuie să vă asigurați că sunteți conștient atunci când lucrați cu noile metadate:
Editarea unui fișier folosind un editor Windows poate elimina metadatele Linux ale fișierului. În acest caz, fișierul va reveni la permisiunile implicite.
Eliminarea tuturor biților de scriere dintr-un fișier în WSL va face ca Windows să marcheze fișierul ca doar pentru citire.
Dacă aveți instalate mai multe distribuții WSL sau mai mulți utilizatori Windows cu WSL instalat, toți vor folosi aceleași metadate pe aceleași fișiere. Uid-urile fiecărui cont de utilizator WSL pot diferi. Acest lucru trebuie luat în considerare atunci când setați permisiunile.
De exemplu, puteți dezactiva permisiunile de scriere pe un fișier în Windows și modificați fișierul pentru a arăta că permisiunile de scriere sunt activate în WSL. Sau puteți avea permisiunile de citire activate în Windows și puteți elimina permisiunile de citire în WSL. Puteți vedea acest concept ilustrat mai jos.
Sursă: Microsoft.