Điểm:6

Ubuntu 20.04 trên WSL2: Nhóm và chủ sở hữu thư mục đang được đặt lại sau mỗi lần khởi động

lá cờ de

Chà, tôi có WSL2 với Ubuntu 20.04.3 LTS trên đó.Nó được thiết kế cho mục đích phát triển web, vì vậy nginx, php và các ứng dụng liên quan khác được cài đặt ở đó. Không có GUI.

Vì vậy, khi tôi bắt đầu với wsl từ Windows PowerShell, tôi luôn phải truy cập thư mục gốc của dự án và đặt quyền cho thư mục chính xác:

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

Nó hoạt động tốt cho đến khi tôi khởi động lại WSL, sau đó sau khi khởi động, các quyền sẽ được đặt lại và tôi phải đặt lại chúng một lần nữa.

Tôi biết rằng tôi có thể thêm các lệnh này để chạy sau khi khởi động, nhưng tôi tò mò về lý do, vì tôi chưa từng trải nghiệm điều này trước đây (trừ khi tôi chuyển sang dọn dẹp hệ thống từ HDD sang SSD, nhưng tôi không nghĩ đây có thể là lý do).

Thành thật mà nói, tôi không nghĩ vấn đề này đến từ nginx, tôi đoán ở đâu đó?

Phải lưu ý rằng không phải tất cả các nhóm thư mục đang được đặt lại, chỉ một số trong số chúng, bằng cách nào đó. Và đây thường là /node_modules, /storage và /bootstrap (Vâng, tôi đang chạy Laravel).

Vì vậy, tại sao điều này xảy ra? Nó không đặt lại quyền truy cập thư mục - chỉ chủ sở hữu & nhóm.

Điểm:3
lá cờ vn

Thông thường chúng tôi làm nghi ngờ metadata hỗ trợ cho các hệ thống tệp drvfs khi xảy ra loại sự cố "quyền hoặc quyền sở hữu" này (như đã lưu ý trong câu trả lời hiện có).

Tuy nhiên, trong trường hợp này, tôi không tin đó là những gì bạn đang thấy, vì nhiều lý do:

  • Đầu tiên metadata tùy chọn chỉ áp dụng cho ổ đĩa gắn kết Windows. Trừ khi có một liên kết tượng trưng trong của bạn /var/www/... đường dẫn mà bạn không đề cập đến, điều đó dường như không xảy ra ở đây.

  • Nhưng hơn thế nữa, nếu đó là vấn đề bạn đang gặp phải, thì chown sẽ không hoạt động chút nào. Không có metadata hỗ trợ, các tệp và thư mục trên ổ Windows được luôn thuộc sở hữu của người dùng mặc định. Một chown đơn giản là sẽ không có tác dụng.

  • Và bạn đề cập rằng các quyền không được đặt lại, vì vậy tôi cho rằng bạn đã có thể đặt một số quyền không mặc định. Điều này cũng không thể thực hiện được trên ổ đĩa Windows nếu không có metadata Tùy chọn.

Vì vậy, với điều đó đã bị loại trừ (tôi tin), tôi sẽ xem xét hai thủ phạm có thể khác:

  • Sự nghi ngờ "bình thường" tiếp theo của tôi (nếu đây không phải là ứng dụng web) sẽ là thứ gì đó trong phần khởi động trình bao của bạn. Tuy nhiên, tôi không thấy đó là trường hợp ở đây. Thật dễ dàng để loại bỏ cấu hình khởi động bằng cách chạy với wsl -e bash --noprofile --norc nếu bạn muốn kiểm tra nó.

  • Nhưng những gì tôi thực sự nghĩ bạn đang thấy ở đây là một cái gì đó giống như cái này. Đó thực sự là "hành vi bình thường" -- Máy chủ web, chạy dưới dạng dữ liệu www, đang tạo tệp/thư mục. Các tệp này được sở hữu một cách tự nhiên bởi người dùng/quy trình đã tạo ra chúng. Tôi không nghĩ quyền sở hữu đó đang được đặt lại khi WSL khởi động lại. Tôi nghĩ chúng chỉ được viết với quyền sở hữu đó ngay từ đầu.

    Nếu điều đó gây ra sự cố cho sự phát triển của bạn, thì hãy thêm người dùng đến dữ liệu www nhóm với sudo usermod -aG dữ liệu www $USER. Hoặc xem câu trả lời được liên kết để biết các tùy chọn bổ sung.

lá cờ de
Cảm ơn bạn đã trả lời của bạn! Vâng, bạn đã đúng: không có bất kỳ liên kết tượng trưng nào trong `/var/www`, cũng như tôi đã có thể đặt các quyền mà tôi cần cho Laravel. Tôi đã thêm `$USER` vào `www-data` như bạn đã nói, chỉ là không đề cập đến nó trong câu hỏi của tôi (xin lỗi vì điều đó). Chắc chắn sẽ xem xét câu trả lời được đề cập của bạn, cảm ơn vì điều đó! Chỉ là sự tò mò khiến tôi đặt câu hỏi về lý do của vấn đề đó.
Điểm:3
lá cờ in

Từ tràn ngăn xếp:

Để cho phép thay đổi quyền và chủ sở hữu tệp, bạn cần chỉnh sửa /etc/wsl.conf và chèn các tùy chọn cấu hình bên dưới:

[tự động đếm] 
tùy chọn = "siêu dữ liệu" 

Điều này có thể yêu cầu khởi động lại WSL (chẳng hạn như với wsl --shutdown) hoặc là máy chủ có hiệu lực. Điều này đã có thể kể từ năm 2018.

Vui lòng truy cập liên kết ở trên để biết câu trả lời đầy đủ cộng với hai câu trả lời khác mà bạn có thể thích.

Cũng xem xét phương pháp mới được Microsoft công bố vào năm 2018. Phương pháp này thậm chí còn đi sâu hơn và liên quan đến gắn kết chỉ huy.

NotTheDr01ds avatar
lá cờ vn
Khá chắc chắn rằng đó không phải là vấn đề ở đây (mặc dù đó luôn là nghi phạm đầu tiên). Nếu đúng như vậy, `chown` thậm chí sẽ không hoạt động. Nó sẽ trở lại thành công, nhưng quyền sở hữu vẫn như cũ. Trong trường hợp này, OP đặc biệt nói "Nó hoạt động tốt cho đến khi tôi khởi động lại WSL", do đó, việc thay đổi quyền * đang * hoạt động. Ngoài ra, OP nói rằng các quyền không được đặt lại, do đó, điều đó cũng cho biết đó không phải là `siêu dữ liệu`. Và cuối cùng, `siêu dữ liệu` chỉ áp dụng cho các tệp trên hệ điều hành Windows - Trừ khi đường dẫn được liệt kê trong câu hỏi bao gồm một liên kết tượng trưng, ​​điều đó dường như không xảy ra ở đây.
WinEunuuchs2Unix avatar
lá cờ in
@NotTheDr01ds Nếu OP chấp nhận câu trả lời của bạn, vui lòng nhắc tôi xóa câu trả lời của tôi. Cảm ơn :)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.