Linux

Управление владельцем и правами файлов в Linux: подробное руководство

Это руководство охватывает основы управления правами доступа и владельцем файлов в Linux. Вы узнаете, как использовать команды chown, chgrp и chmod для настройки безопасности и доступа к файлам.

Обновлено 15 февраля 2026 г.
10-15 минут
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 10+CentOS 7+Все современные дистрибутивы Linux

Введение / Зачем это нужно

В Linux каждый файл и каталог имеет владельца (пользователя) и группу, а также набор прав доступа (чтение, запись, выполнение). Эти атрибуты определяют, кто может что делать с файлом. Управление ими критически важно для безопасности системы, совместной работы в команде и корректной работы приложений. Например, веб-сервер должен иметь доступ только к нужным файлам, а скрипты — права на выполнение. Это руководство поможет вам уверенно изменять владельца, группу и права доступа с помощью стандартных команд.

Требования / Подготовка

Перед началом убедитесь, что:

  • У вас есть доступ к терминалу Linux (локально или через SSH).
  • Вы знаете базовые команды навигации (cd, ls).
  • Для изменения чужих файлов потребуются права администратора (sudo). Если вы работаете со своими файлами, sudo не нужен.
  • Установлены стандартные утилиты chown, chgrp, chmod — они есть во всех дистрибутивах по умолчанию.
  • Вы знаете имя пользователя или группы, на которые хотите изменить атрибуты. Проверить существующих пользователей можно в /etc/passwd, групп — в /etc/group.

Шаг 1: Проверка текущих прав доступа

Сначала нужно понять, как сейчас настроены права. Используйте команду ls -l для детального списка файлов.

ls -l файл

Пример вывода:

-rw-r--r-- 1 alice developers 1024 Feb 15 10:00 example.txt

Здесь:

  • -rw-r--r-- — права доступа: владелец (alice) может читать и писать, группа (developers) — только читать, остальные — только читать.
  • alice — владелец файла.
  • developers — группа файла.

Для каталога права могут включать x (выполнение/доступ).

💡 Совет: Используйте ls -ld каталог чтобы увидеть права на сам каталог, а не его содержимое.

Шаг 2: Изменение владельца файла (chown)

Команда chown меняет владельца файла или каталога. Синтаксис:

sudo chown [новый_владелец] файл

Пример: Сменить владельца example.txt на bob:

sudo chown bob example.txt

Рекурсивное изменение

Чтобы изменить владельца для всех файлов внутри каталога, добавьте флаг -R:

sudo chown -R bob /путь/к/каталогу

⚠️ Важно: Будьте осторожны с рекурсивным изменением в системных каталогах (например, /etc), это может нарушить работу системы.

Изменение и владельца, и группы одновременно

Используйте двоеточие для указания группы:

sudo chown bob:developers example.txt

Это изменит владельца на bob и группу на developers. Если указать только группу (например, :developers), владелец останется прежним.

Шаг 3: Изменение группы файла (chgrp)

Если нужно сменить только группу, используйте chgrp:

sudo chgrp новая_группа файл

Пример:

sudo chgrp marketing example.txt

Альтернативно, через chown с двоеточием (как показано выше). Рекурсия через -R:

sudo chgrp -R marketing /путь/к/каталогу

Шаг 4: Настройка прав доступа (chmod)

Права доступа управляются тремя категориями: владелец (u), группа (g), остальные (o). Каждая категория может иметь права: чтение (r), запись (w), выполнение (x).

Символьный режим

Наиболее наглядный способ. Примеры:

  • Добавить владельцу право на выполнение: chmod u+x скрипт.sh
  • Убрать у группы и остальных право на запись: chmod go-w файл
  • Дать всем полный доступ (осторожно!): chmod a=rwx файл

Числовой (октальный) режим

Права задаются тремя цифрами (или четырьмя, включая специальные биты). Каждая цифра — сумма значений: r=4, w=2, x=1.

  • 755 — владелец: rwx (4+2+1=7), группа и остальные: rx (4+1=5).
  • 644 — владелец: rw- (4+2=6), группа и остальные: r-- (4).

Пример:

chmod 755 скрипт.sh  # Даёт владельцу полный доступ, группе и другим — чтение и выполнение.

Рекурсивное изменение

chmod -R 755 /путь/к/каталогу

💡 Совет: Для скриптов часто достаточно chmod +x файл, что эквивалентно chmod a+x файл.

Шаг 5: Практические примеры и советы

Пример 1: Настройка веб-сервера

Владелец файлов веб-сайта — www-data, группа — developers, права: владелец читает/пишет, группа и другие — только читают.

sudo chown -R www-data:developers /var/www/html
sudo chmod -R 755 /var/www/html
sudo chmod -R 644 /var/www/html/*.html  # Для HTML-файлов: владелец читает/пишет, другие — только читают.

Пример 2: Совместная работа над проектом

Все файлы в /project должны принадлежать группе team, с правами на запись для членов группы.

sudo chown -R :team /project
sudo chmod -R 775 /project  # rwx для владельца и группы, rx для других.

Пример 3: Защита конфиденциального файла

Только владелец может читать и писать.

chmod 600 ~/.ssh/id_rsa

::in-article-ad

::

Шаг 6: Проверка результата

После изменений всегда проверяйте, что всё применилось корректно:

ls -l файл

Убедитесь, что отображается новый владелец, группа и права. Для каталога с рекурсивными изменениями проверьте несколько вложенных файлов.

Если права не изменились, возможно:

  • Вы не использовали sudo для чужих файлов.
  • Указан несуществующий пользователь или группа (проверьте через id пользователь или getent группа).
  • Файл находится на смонтированной файловой системе с опцией noacl (например, некоторые FAT/NTFS), где права Linux не поддерживаются.

Возможные проблемы

Ошибка "Operation not permitted"

Произходит, если:

  • Вы пытаетесь изменить владельца на другого пользователя без sudo.
  • Файл находится на файловой системе, которая не поддерживает изменение владельца (например, смонтированная с nosuid или noacl). Решение: Используйте sudo или проверьте опции монтирования (mount).

Ошибка "No such file or directory" при chown/chgrp

Указанный пользователь или группа не существует. Решение: Создайте пользователя/группу (sudo useradd имя, sudo groupadd имя) или укажите корректные.

Неправильные права после chmod

Вы могли перепутать числовой режим. Например, chmod 777 даёт полный доступ всем — это опасно. Решение: Используйте минимально необходимые права. Для скриптов — 755 (владелец: rwx, группа и другие: rx). Для конфигов — 644 или 600.

Рекурсивное изменение затронуло симлинки

По умолчанию chown -R и chmod -R следуют за символическими ссылками. Чтобы изменить саму ссылку, а не целевой файл, используйте -h (где поддерживается). Будьте осторожны, чтобы не сломать систему.

Права не применяются к новым файлам

Новые файлы наследуют группа от родительского каталога, если установлен setgid-бит. Чтобы группа всегда была одинаковой, установите setgid на каталог:

sudo chmod g+s каталог

Теперь новые файлы в этом каталоге будут иметь группу каталога.

Вопросы и ответы

Q: Как изменить владельца и группу одновременно?
A: sudo chown пользователь:группа файл. Пример: sudo chown alice:devs file.txt.

Q: Что делать, если команда chown не работает?
A: Проверьте права sudo, существование пользователя/группы и файловую систему. Используйте id для проверки пользователя.

Q: Как дать права на выполнение скрипту?
A: chmod +x скрипт.sh или chmod 755 скрипт.sh.

Q: В чем разница между chown и chgrp?
A: chown меняет владельца (и optionally группу), chgrp меняет только группу. Для группы также можно использовать chown :группа файл.

Часто задаваемые вопросы

Как изменить владельца и группу одновременно?
Что делать, если команда chown не работает?
Как дать права на выполнение скрипту?
В чем разница между chown и chgrp?

Полезное

Проверьте текущие права файла
Измените владельца файла
Измените группу файла
Настройте права доступа
Проверьте изменения