hostprofi.ru
Подобрать хостинг
Термин

Владелец файла (chown)

краткое определение

chown — команда Linux для изменения владельца и группы файлов. Критична для настройки веб-сервера: PHP-FPM и Nginx должны иметь права на чтение/запись файлов сайта.

В Linux каждый файл имеет владельца (user) и группу (group). Права доступа (read/write/execute) применяются отдельно для трёх категорий: владелец, группа, остальные (other). Команда chown меняет владельца и/или группу файла или директории.

Синтаксис и примеры

# Изменить только владельца
chown www-data file.php

# Изменить владельца и группу
chown www-data:www-data /var/www/html

# Рекурсивно для директории
chown -R www-data:www-data /var/www/html

# Изменить только группу
chown :www-data file.php  # или chgrp www-data file.php

# Посмотреть текущего владельца
ls -la file.php
# Output: -rw-r--r-- 1 www-data www-data 1234 Jan 1 /var/www/file.php

Типичные сценарии в хостинге

  • PHP-приложение под Nginx + PHP-FPM: chown -R www-data:www-data /var/www/site/PHP-FPM работает от www-data, должен читать и писать файлы.
  • WordPress uploads: /wp-content/uploads должна принадлежать www-data для загрузки медиафайлов.
  • Деплой через CI/CD: пользователь deploy копирует файлы, процесс Nginx запускается под www-data — файлы должны принадлежать www-data или иметь нужные права группы.
  • Бэкапы: файлы бэкапа должны принадлежать пользователю, выполняющему cron-задачу.

chmod vs chown

КомандаЧто меняетПример
chownКому принадлежит файлchown www-data:www-data /var/www
chmodЧто можно делать с файломchmod 755 /var/www
chgrpТолько группу (часть chown)chgrp www-data /var/www

Стандартная настройка для веб-директории:

chown -R www-data:www-data /var/www/html   # владелец = веб-сервер
chmod -R 755 /var/www/html                 # директории: rwxr-xr-x
find /var/www/html -type f -exec chmod 644 {} \;  # файлы: rw-r--r--

История

chown входит в стандарт POSIX и присутствует во всех Unix/Linux-системах с первых версий Unix (ранние 1970-е). В Linux реализован как часть GNU Coreutils. Модель владения файлами — UID/GID — унаследована от Unix и остаётся неизменной с 1970-х.

На что обращать внимание

Рекурсивный chown -R на системных директориях (/etc, /usr) может полностью сломать систему — выполнять с осторожностью. sudo обязателен для смены владельца файлов, принадлежащих другим пользователям. В контексте Docker: UID внутри контейнера может не совпадать с UID на хосте — при монтировании volumes проверяйте права доступа.

Рекурсивная смена владельца

Флаг -R рекурсивно меняет владельца всех файлов и поддиректорий:

chown -R www-data:www-data /var/www/site

Это стандартная команда после загрузки файлов сайта на сервер — Nginx и Apache работают от пользователя www-data и не смогут читать файлы с другим владельцем.

Числовые UID/GID

chown принимает как имена, так и числовые идентификаторы: chown 1000:1000 file.txt. Числовые UID используются в контейнерах Docker, где имена пользователей могут отличаться от хост-системы. Проверить текущих владельцев: ls -la или stat file.txt.

Одновременная смена владельца и группы: chown user:group file. Только группы: chown :group file или команда chgrp group file. Только владельца: chown user file. Связка chown + chmod — базовый инструмент настройки прав на любом Linux-сервере.

Другие термины