Содержание
Ошибка: Docker/Linux: Permission Denied (Отказано в доступе)
Это была самая частая и самая коварная проблема на протяжении всей настройки. Она проявлялась по-разному, но причина всегда была одна: конфликт прав доступа между пользователем хоста (<code>malico</code> или <code>debi</code>) и пользователем внутри Docker-контейнера.
Проявление №1: FileZilla не может записать файлы
Проблема: Я не мог скопировать файлы сайта в папку
/var/www/mistworld
, получая ошибку «Permission Denied». Причина: Папка принадлежала системному пользователю
www-data
, а я был подключен как
debi
. Решение (двухэтапное):
1. Временно "забрать" папку себе: <code>sudo chown -R debi:debi /var/www/mistworld</code>. 2. Скопировать файлы. 3. **Вернуть** папку веб-серверу: <code>sudo chown -R www-data:www-data /var/www/mistworld</code>.
Проявление №2: Контейнер не может запуститься или создать файлы
Проблема: DokuWiki выдавал ошибку
DokuWiki Setup Error ... not accessible or writable
. Mumble не мог сохранить регистрацию пользователя. Причина: Docker создавал на хосте папку для `volumes` (например,
./dokuwiki/
) от имени
root
. А контейнер, запущенный от имени пользователя
1000
(PUID/PGID), не имел прав на запись в эту папку. Решение (универсальное):
1. **Остановить** проблемный контейнер (<code>docker compose stop ...</code>). 2. **Создать** нужную папку вручную (<code>mkdir -p ...</code>). 3. **Заранее выставить** правильного владельца: <code>sudo chown -R 1000:1000 ./dokuwiki/</code>. 4. **Запустить** контейнер.
Главный урок: для образов от ''linuxserver.io'' (и многих других) нужно **сначала готовить папку с правильными правами**, а потом запускать контейнер, а не наоборот.
Проявление №3: nano пишет `[ File is unwritable ]`
Проблема: Я не мог сохранить изменения в
conf.yml
. Причина: Файл был создан через
sudo nano
и принадлежал
root
. Решение: Сменить владельца файла на моего пользователя:
sudo chown malico:malico [путь_к_файлу]
. После этого открывать файл через
nano
без `sudo`.
