Puncte:6

Ubuntu 20.04 pe WSL2: proprietarul folderului și grupul sunt resetate după fiecare pornire

drapel de

Ei bine, am un WSL2 cu Ubuntu 20.04.3 LTS pe el.Este destinat dezvoltării web, așa că acolo sunt instalate nginx, php și alte aplicații conexe. Fără GUI.

Deci când încep cu wsl din Windows PowerShell, trebuie să merg întotdeauna la rădăcina proiectului și să setez permisiunile corecte ale folderului:

sudo chown -R $USER:www-data /var/www/html/project_root/all_required_folders

Funcționează bine până când repornesc WSL, apoi după pornire, permisiunile sunt resetate și trebuie să le setez din nou.

Știu că pot adăuga aceste comenzi pentru a rula după pornire, dar sunt curios de motiv, pentru că nu am experimentat asta înainte (cu excepția cazului în care am trecut la sistemul de curățare de pe HDD pe SSD, dar nu cred că acesta ar putea fi motiv).

Sincer, nu cred că această problemă vine de la nginx, cred că undeva esle?

Trebuie să rețineți că nu toate grupurile de foldere sunt resetate, ci doar unele dintre ele, cumva. Și acestea sunt de obicei /node_modules, /storage și /bootstrap (Da, rulez Laravel).

Deci, de ce se întâmplă asta? Nu resetează permisiunile folderului - doar proprietarul și grupul.

Puncte:3
drapel vn

De obicei noi do bănuiește că metadate suport pentru sistemele de fișiere drvfs atunci când apare acest tip de problemă de „permisiuni sau proprietate” (după cum este menționat în răspunsul existent).

Cu toate acestea, în acest caz, nu cred că asta este ceea ce vedeți, din mai multe motive:

  • În primul rând, metadate opțiunea este aplicabilă numai suporturilor de unitate Windows. Dacă nu există un link simbolic în dvs /var/www/... cale pe care nu ați menționat-o, nu pare să fie cazul aici.

  • Dar mai mult decât atât, dacă asta e problema pe care o aveai, atunci chown nu ar funcționa deloc. Fără metadate suport, fișierele și directoarele de pe unitatea Windows sunt mereu deținut de utilizatorul implicit. A chown pur și simplu nu ar avea niciun efect.

  • Și menționați că permisiunile nu sunt resetate, așa că presupun că ați reușit să setați niște permisiuni care nu sunt implicite. De asemenea, acest lucru nu ar fi posibil pe o unitate Windows fără metadate opțiune.

Deci, cu acest lucru exclus (cred), m-aș uita la alți doi posibili vinovați:

  • Următoarea mea suspiciune „normală” (dacă aceasta nu a fost o aplicație web) ar fi ceva în pornirea dumneavoastră shell. Cu toate acestea, nu văd că este cazul aici. Este ușor să eliminați configurația de pornire rulând cu wsl -e bash --noprofile --norc dacă vrei să-l testezi.

  • Dar ceea ce eu cu adevărat gândi ce vezi aici este ceva de genul acest. Este într-adevăr „comportament normal” -- Serverul web, care rulează ca www-data, creează fișiere/directoare. Aceste fișiere sunt în mod natural deținute de utilizatorul/procesul care le-a creat. Eu nu gândi acea proprietate este resetată când WSL repornește. eu gândi sunt scrise doar cu acea proprietate în primul rând.

    Dacă asta cauzează probleme pentru dezvoltarea ta, atunci adaugă ta utilizator la www-data grup cu sudo usermod -aG www-data $USER. Sau consultați răspunsul legat pentru opțiuni suplimentare.

drapel de
Multumesc pentru raspunsul tau! Da, aveți dreptate: nu există nicio legătură simbolică în `/var/www`, precum și am putut seta permisiunile de care am nevoie pentru Laravel. Am adăugat deja `$USER` la `www-data` așa cum ați spus, pur și simplu nu l-am menționat în întrebarea mea (scuze pentru asta). Cu siguranță voi arunca o privire la răspunsul menționat, mulțumesc pentru asta! Doar curiozitatea care m-a făcut să pun la îndoială motivul acestei probleme.
Puncte:3
drapel in

Din Depășirea stivei:

Pentru a activa modificarea proprietarilor de fișiere și a permisiunilor, trebuie să editați /etc/wsl.conf și introduceți opțiunile de configurare de mai jos:

[montare automată] 
opțiuni = „metadate” 

Acest lucru poate necesita repornirea WSL (cum ar fi cu wsl --oprire) sau mașina gazdă să intre în vigoare. Acest lucru este posibil din 2018.

Vă rugăm să vizitați linkul de mai sus pentru răspunsul complet plus celelalte două răspunsuri pe care le puteți prefera.

Luați în considerare, de asemenea, o nouă metodă anunțat de Microsoft în 2018. Această metodă intră și mai în profunzime și implică montură comanda.

NotTheDr01ds avatar
drapel vn
Destul de sigur că nu aceasta este problema aici (deși acesta este întotdeauna primul suspect). Dacă ar fi, `chown` nici nu ar funcționa deloc. S-ar întoarce cu succes, dar proprietatea ar fi în continuare aceeași. În acest caz, OP-ul spune în mod specific „Funcționează bine până când repornesc WSL”, așa că schimbarea permisiunilor *este* funcțională. De asemenea, OP spune că permisiunile nu sunt resetate, deci, de asemenea, spune că nu sunt „metadatele”. Și, în sfârșit, „metadatele” se aplică numai fișierelor de pe monturile Windows -- Cu excepția cazului în care calea listată în întrebare include un link simbolic, acesta nu pare să fie cazul aici.
WinEunuuchs2Unix avatar
drapel in
@NotTheDr01ds Dacă OP acceptă răspunsul tău, amintește-mi cu amabilitate să-l șterg pe al meu. Mulțumiri :)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.