Хостинг

CHOWN | ЧТОУН? Рекурсивное изменение владельца папки centos Битрикс

CHOWN | ЧТОУН? Рекурсивное изменение владельца папки centos Битрикс

В проектах файлы и папки часто создаются различными способами — через FTP-клиент, панель управления хостингом, командную строку или с помощью скрипта. Это приводит к тому, что их владельцы могут различаться. Возьмем пример с Битриксом: он работает от имени пользователя bitrix в группе bitrix. Если вы создаете папки и файлы через FTP-клиент, они могут быть созданы от имени пользователя root. При проверке системы или создании бэкапа может возникнуть ошибка:

Файлы и папки недоступны для чтения или записи (показаны первые 10)

Рекурсивное изменение владельца папки

Чтобы устранить проблему, выполните в консоли следующую команду:

chown -R bitrix:bitrix /home/bitrix/www/
chown -R bitrix:bitrix /home/bitrix/www/

для дополнительных сайтов:

chown -R bitrix:bitrix /home/bitrix/ext_www/папка_сайта/

Ставим права на папки основного сайта:

cd /home/bitrix/www

find . -type d -exec chmod 775 {} ;

find . -type f -exec chmod 664 {} ;

find . -type d -exec chown bitrix:bitrix {} ;

find . -type f -exec chown bitrix:bitrix {} ;

Ставим права на папки дополнительных сайтов:

cd /home/bitrix/ext_www

find . -type d -exec chmod 775 {} ;

find . -type f -exec chmod 664 {} ;

find . -type d -exec chown bitrix:bitrix {} ;

find . -type f -exec chown bitrix:bitrix {} ;

Здесь -R обозначает рекурсивное выполнение (включая вложенные файлы и папки). Замените bitrix:bitrix на нужное имя_пользователя:группа_пользователя, а /home/bitrix/www/ — на нужный каталог.

В CentOS 7 (как и в большинстве дистрибутивов Linux) для смены владельца файла или директории используется команда chown.

Основной синтаксис:

bash Скопировать

Закрыть блок

sudo chown [НОВЫЙ_ВЛАДЕЛЕЦ] [ФАЙЛ_ИЛИ_ДИРЕКТОРИЯ]

Или, если вы также хотите изменить группу:

bash Скопировать

Закрыть блок

sudo chown [НОВЫЙ_ВЛАДЕЛЕЦ]:[НОВАЯ_ГРУППА] [ФАЙЛ_ИЛИ_ДИРЕКТОРИЯ]

Разбор:

  • sudo: Команда chown требует прав суперпользователя (root) для смены владельца на другого пользователя. Если вы уже root, sudo не нужен.

  • chown: Сама команда (change owner).

  • [НОВЫЙ_ВЛАДЕЛЕЦ]: Имя пользователя, которому вы хотите передать владение. Это может быть имя пользователя (например, apache, nginx, myuser) или его UID (числовой идентификатор пользователя).

  • :[НОВАЯ_ГРУППА] (необязательно): Если вы хотите одновременно сменить и группу файла/директории. Указывается через двоеточие после имени владельца. Это может быть имя группы (например, apache, webdev) или ее GID (числовой идентификатор группы).

  • Если вы хотите изменить только группу, оставив текущего владельца, можно использовать: sudo chown :[НОВАЯ_ГРУППА] [ФАЙЛ_ИЛИ_ДИРЕКТОРИЯ] (хотя для этого чаще используется команда chgrp).

  • [ФАЙЛ_ИЛИ_ДИРЕКТОРИЯ]: Путь к файлу или директории, владельца которой вы хотите изменить.

Примеры:

  • Сменить владельца файла myfile.txt на пользователя john:

bash Скопировать

Закрыть блок

sudo chown john myfile.txt
  • Сменить владельца файла config.php на пользователя apache и группу apache:

bash Скопировать

Закрыть блок

sudo chown apache:apache config.php
  • Сменить владельца директории /var/www/html и всего ее содержимого (рекурсивно) на пользователя nginx и группу nginx: Для рекурсивного изменения используется флаг -R (или --recursive).

bash Скопировать

Закрыть блок

sudo chown -R nginx:nginx /var/www/html

Внимание: Будьте очень осторожны при использовании -R, особенно с системными директориями. Убедитесь, что указали правильный путь.

  • Сменить владельца файла, используя UID (например, 1001) и GID (например, 1002):

bash Скопировать

Закрыть блок

sudo chown 1001:1002 /path/to/somefile

Как проверить владельца:

Используйте команду ls -l:

bash Скопировать

Закрыть блок

ls -l myfile.txt

Вывод будет выглядеть примерно так:

-rw-r--r-- 1 john users 1024 Dec 10 10:00 myfile.txt
^    ^
|    |
Владелец Группа

Важные моменты:

  • Только пользователь root (или пользователь с правами sudo) может менять владельца файла на любого другого пользователя.

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

  • При смене владельца директории с флагом -R права меняются для самой директории, всех вложенных файлов и всех вложенных поддиректорий.

Выберите подходящий вариант команды для вашей задачи.


Ищете надежного партнера по веб-разработке и автоматизации? Мы помогаем бизнесу расти с помощью современных технологий, автоматизации процессов и экспертного SEO. Свяжитесь с нами, чтобы обсудить вашу задачу.

🚀 Нужна помощь с сайтом на 1С-Битрикс или Аспро?

Я работаю удалённо по всей России и СНГ. Узнайте цены и условия для вашего города:

Все регионы →