Score:6

Ubuntu 20.04 บน WSL2: เจ้าของโฟลเดอร์ & กลุ่มจะถูกรีเซ็ตหลังจากการเริ่มต้นแต่ละครั้ง

ธง de

ฉันมี WSL2 พร้อม Ubuntu 20.04.3 LTS อยู่มีไว้สำหรับวัตถุประสงค์ในการพัฒนาเว็บ ดังนั้นจึงติดตั้ง nginx, php และแอปที่เกี่ยวข้องอื่นๆ ไว้ที่นั่น ไม่มี GUI

ดังนั้นเมื่อฉันเริ่มต้นด้วย wsl จาก Windows PowerShell ฉันต้องไปที่รูทโปรเจ็กต์เสมอและตั้งค่าการอนุญาตโฟลเดอร์ที่ถูกต้อง:

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

มันทำงานได้ดีจนกระทั่งฉันรีสตาร์ท WSL จากนั้นหลังจากบูต สิทธิ์จะถูกรีเซ็ตกลับและฉันต้องตั้งค่าอีกครั้ง

ฉันรู้ว่าฉันสามารถเพิ่มคำสั่งเหล่านี้ให้ทำงานหลังจากบู๊ตได้ แต่ฉันสงสัยเกี่ยวกับสาเหตุ เพราะฉันไม่เคยเจอปัญหานี้มาก่อน (เว้นแต่ฉันจะย้ายระบบที่สะอาดจาก HDD เป็น SSD แต่ฉันไม่คิดว่านี่อาจเป็น เหตุผล).

จริงๆแล้วฉันไม่คิดว่าปัญหานี้มาจาก nginx ฉันเดาว่าที่ไหนสักแห่ง esle?

โปรดทราบว่ากลุ่มโฟลเดอร์บางกลุ่มไม่ได้ถูกรีเซ็ต มีเพียงบางกลุ่มเท่านั้น และสิ่งเหล่านี้มักจะเป็น /node_modules, /storage และ /bootstrap (ใช่ ฉันใช้ Laravel)

เหตุใดจึงเกิดขึ้น มันไม่รีเซ็ตสิทธิ์ของโฟลเดอร์ - เฉพาะเจ้าของ & กลุ่ม

Score:3
ธง in

จาก สแต็คโอเวอร์โฟลว์:

หากต้องการเปิดใช้งานการเปลี่ยนเจ้าของไฟล์และการอนุญาต คุณต้องแก้ไข /etc/wsl.conf และใส่ตัวเลือกการกำหนดค่าด้านล่าง:

[อัตโนมัติ] 
ตัวเลือก = "ข้อมูลเมตา" 

อาจต้องรีสตาร์ท WSL (เช่น with wsl -- ปิดเครื่อง) หรือ เครื่องโฮสต์ที่จะมีผล สิ่งนี้เป็นไปได้ตั้งแต่ปี 2561

โปรดไปที่ลิงก์ด้านบนเพื่อดูคำตอบทั้งหมดและอีกสองคำตอบที่คุณอาจต้องการ

พิจารณาวิธีการใหม่ด้วย ประกาศโดย Microsoft ในปี 2018. วิธีนี้จะลงลึกยิ่งขึ้นและเกี่ยวข้องกับ ภูเขา สั่งการ.

NotTheDr01ds avatar
vn flag
ค่อนข้างแน่ใจว่านั่นไม่ใช่ปัญหาที่นี่ (แม้ว่านั่นจะเป็นผู้ต้องสงสัยรายแรกเสมอ) ถ้าเป็นเช่นนั้น `chown` จะไม่ทำงานเลยด้วยซ้ำ มันจะกลับมาได้สำเร็จ แต่ความเป็นเจ้าของจะยังคงเหมือนเดิม ในกรณีนี้ OP ระบุว่า "ทำงานได้ดีจนกว่าฉันจะรีสตาร์ท WSL" ดังนั้นการเปลี่ยนการอนุญาต *จึง* ใช้งานได้ นอกจากนี้ OP ยังระบุว่าสิทธิ์จะไม่ถูกรีเซ็ต ดังนั้นจึงยังระบุว่าไม่ใช่ `ข้อมูลเมตา` และสุดท้าย `ข้อมูลเมตา' ใช้ได้เฉพาะกับไฟล์ที่เมานต์ Windows เท่านั้น เว้นแต่ว่าพาธที่แสดงในคำถามจะมี symlink ซึ่งดูเหมือนจะไม่เป็นเช่นนั้น
WinEunuuchs2Unix avatar
in flag
@ NotTheDr01ds หาก OP ยอมรับคำตอบของคุณ โปรดเตือนให้ฉันลบของฉัน ขอบคุณ :)
Score:3
ธง vn

โดยปกติแล้วเรา ทำ สงสัยว่า ข้อมูลเมตา รองรับระบบไฟล์ drvfs เมื่อเกิดปัญหา "สิทธิ์หรือความเป็นเจ้าของ" ประเภทนี้ (ตามที่ระบุไว้ในคำตอบที่มีอยู่)

อย่างไรก็ตาม ในกรณีนี้ ฉันไม่เชื่อว่านั่นคือสิ่งที่คุณเห็น ด้วยเหตุผลหลายประการ:

  • ประการแรก ข้อมูลเมตา ตัวเลือกนี้ใช้ได้กับการติดตั้งไดรฟ์ของ Windows เท่านั้น เว้นแต่จะมี symlink ในไฟล์ /var/www/... เส้นทางที่คุณไม่ได้กล่าวถึง ดูเหมือนจะไม่เป็นเช่นนั้นที่นี่

  • แต่ยิ่งไปกว่านั้น หากนั่นคือปัญหาของคุณแล้วล่ะก็ เคี้ยว จะไม่ทำงานเลย ปราศจาก ข้อมูลเมตา รองรับไฟล์และไดเร็กทอรีในไดรฟ์ Windows เสมอ เป็นของผู้ใช้เริ่มต้น ก เคี้ยว ก็จะไม่มีผล

  • และคุณบอกว่าการอนุญาตจะไม่ถูกรีเซ็ต ดังนั้นฉันจึงถือว่าคุณสามารถตั้งค่าการอนุญาตที่ไม่ใช่ค่าเริ่มต้นได้ สิ่งนี้จะไม่สามารถทำได้ในไดรฟ์ Windows หากไม่มี ข้อมูลเมตา ตัวเลือก.

เมื่อตัดออกไป (ฉันเชื่อ) ฉันจะดูผู้ร้ายที่เป็นไปได้อีกสองคน:

  • ความสงสัย "ปกติ" ครั้งต่อไปของฉัน (หากนี่ไม่ใช่เว็บแอป) จะเป็นบางอย่างในการเริ่มต้นเชลล์ของคุณ อย่างไรก็ตามฉันไม่เห็นว่าเป็นกรณีนี้ ง่ายต่อการกำจัดการกำหนดค่าเริ่มต้นด้วยการรันด้วย wsl -e ทุบตี --noprofile --norc หากคุณต้องการทดสอบ

  • แต่สิ่งที่ได้จริงๆ คิด ที่คุณเห็นนี่คือสิ่งที่ต้องการ นี้. เป็น "พฤติกรรมปกติ" จริงๆ -- เว็บเซิร์ฟเวอร์ที่ทำงานเป็น www-ข้อมูลกำลังสร้างไฟล์/ไดเร็กทอรี ไฟล์เหล่านี้เป็นของผู้ใช้/กระบวนการที่สร้างโดยธรรมชาติ ฉันไม่ คิด ความเป็นเจ้าของนั้นจะถูกรีเซ็ตเมื่อ WSL เริ่มต้นใหม่ ฉัน คิด พวกเขาเพิ่งเขียนด้วยความเป็นเจ้าของนั้นตั้งแต่แรก

    หากนั่นทำให้เกิดปัญหาในการพัฒนาของคุณ ให้เพิ่มของคุณ ผู้ใช้ ไปที่ www-ข้อมูล กลุ่มกับ sudo usermod -aG www-data $USER. หรือดูคำตอบที่เชื่อมโยงสำหรับตัวเลือกเพิ่มเติม

de flag
ขอบคุณสำหรับคำตอบของคุณ! ใช่ คุณพูดถูก ไม่มี symlink ใน `/var/www` รวมทั้งฉันสามารถตั้งค่าการอนุญาตที่จำเป็นสำหรับ Laravel ฉันได้เพิ่ม `$USER` ใน `www-data` ตามที่คุณพูดแล้ว เพียงแต่ไม่ได้พูดถึงมันในคำถามของฉัน (ขออภัยด้วย) จะดูคำตอบที่คุณกล่าวถึงอย่างแน่นอน ขอบคุณสำหรับสิ่งนั้น! ความอยากรู้อยากเห็นเท่านั้นที่ทำให้ฉันถามถึงสาเหตุของปัญหานั้น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา