Рейтинг:6

Ubuntu 20.04 на WSL2: владелец папки и группа сбрасываются после каждого запуска

флаг de

Ну, у меня есть WSL2 с Ubuntu 20.04.3 LTS.Он предназначен для веб-разработки, поэтому там установлены nginx, php и другие сопутствующие приложения. Нет графического интерфейса.

Поэтому, когда я начинаю с wsl из Windows PowerShell мне всегда нужно идти в корень проекта и устанавливать правильные разрешения для папки:

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

Он работает нормально, пока я не перезапущу WSL, затем после загрузки разрешения сбрасываются обратно, и мне приходится устанавливать их снова.

Я знаю, что могу добавить эти команды для запуска после загрузки, но мне любопытна причина, потому что я не сталкивался с этим раньше (если только я не перешел на очистку системы с жесткого диска на твердотельный накопитель, но я не думаю, что это может быть) причина).

Честно говоря, я не думаю, что эта проблема связана с nginx, я думаю, где-то еще?

Должен отметить, что не вся группа папок сбрасывается, а только некоторые из них каким-то образом. Обычно это /node_modules, /storage и /bootstrap (да, я запускаю Laravel).

Итак, почему это происходит? Он не сбрасывает права доступа к папке - только владелец и группа.

Рейтинг:3
флаг vn

Обычно мы делать подозревать метаданные поддержка файловых систем drvfs при возникновении проблемы «разрешения или права собственности» (как указано в существующем ответе).

Однако в этом случае я не верю, что вы видите это по нескольким причинам:

  • Во-первых, метаданные Опция применима только к монтированию дисков Windows. Если в вашем /var/www/... путь, который вы не упомянули, здесь, похоже, не так.

  • Но более того, если это проблема, с которой вы столкнулись, то чаун не будет работать вообще. Без метаданные поддержку, файлы и каталоги на диске Windows всегда принадлежит пользователю по умолчанию. А чаун просто не будет никакого эффекта.

  • И вы упомянули, что разрешения не сбрасываются, поэтому я предполагаю, что вы смогли установить некоторые разрешения не по умолчанию. Это также было бы невозможно на диске Windows без метаданные вариант.

Итак, исключив это (я полагаю), я бы посмотрел на двух других возможных виновников:

  • Мое следующее «нормальное» подозрение (если это не веб-приложение) будет связано с запуском вашей оболочки. Однако я не вижу, чтобы это было здесь. Легко удалить конфигурацию запуска, запустив wsl -e bash --noprofile --norc если вы хотите протестировать его.

  • Но что я на самом деле считать вы видите здесь что-то вроде это. Это действительно «нормальное поведение». Веб-сервер, работающий как www-данные, создает файлы/каталоги. Эти файлы, естественно, принадлежат пользователю/процессу, который их создал. Я не считать это право владения сбрасывается при перезапуске WSL. я считать они просто пишутся с этим правом собственности в первую очередь.

    Если это вызывает проблемы для вашей разработки, добавьте свой пользователь к www-данные группа с sudo usermod -aG www-данные $USER. Или см. связанный ответ для дополнительных опций.

флаг de
Спасибо за ваш ответ! Да, вы правы: в `/var/www` нет никакой символической ссылки, а также я смог установить нужные мне разрешения для Laravel. Я уже добавил `$USER` в `www-data`, как вы сказали, просто не упомянул об этом в своем вопросе (извините за это). Обязательно посмотрю на упомянутый вами ответ, спасибо за это! Просто любопытство, которое заставило меня задаться вопросом о причине этой проблемы.
Рейтинг:3
флаг in

От Переполнение стека:

Чтобы включить смену владельцев файлов и разрешений, вам нужно отредактировать /etc/wsl.conf и вставьте следующие параметры конфигурации:

[автомонтирование] 
опции = "метаданные" 

Это может потребовать перезапуска WSL (например, с wsl --shutdown) или хост-машина для вступления в силу. Это стало возможным с 2018 года.

Пожалуйста, перейдите по ссылке выше, чтобы получить полный ответ, а также два других ответа, которые вы можете предпочесть.

Также рассмотрим новый метод анонсировано Microsoft в 2018 г.. Этот метод идет еще глубже и включает в себя устанавливать команда.

NotTheDr01ds avatar
флаг vn
Почти уверен, что проблема не в этом (хотя это всегда первый подозреваемый). Если бы это было так, то "chown" вообще бы не работал. Он будет успешно возвращен, но право собственности останется прежним. В этом случае OP специально говорит: «Он работает нормально, пока я не перезапущу WSL», поэтому изменение разрешений *работает*. Кроме того, OP говорит, что разрешения не сбрасываются, так что это также говорит о том, что это не «метаданные». И, наконец, «метаданные» применимы только к файлам на монтировании Windows. Если путь, указанный в вопросе, не включает символическую ссылку, здесь это не так.
WinEunuuchs2Unix avatar
флаг in
@ NotTheDr01ds NotTheDr01ds Если OP примет ваш ответ, пожалуйста, напомните мне удалить мой. Спасибо :)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.