Гид по технологиям

chown в Linux — смена владельца и группы

• 5 min read • Linux • Обновлено 20 Nov 2025
chown в Linux — смена владельца и группы
chown в Linux — смена владельца и группы

Команда chown в Linux: изменение владельца файла

Что делает chown и когда он нужен

Команда chown (change owner) переводит файл или каталог на другого пользователя и/или в другую группу. Это полезно при переносе данных между пользователями, настройке сервисов, исправлении прав доступа после восстановления резервной копии или настройке совместного доступа.

Ключевые понятия в одну строку:

  • Владелец — учётная запись пользователя, которой принадлежит файл.
  • Группа — набор пользователей, которым можно дать общие права.
  • UID/GID — числовые идентификаторы пользователя и группы.

Базовый синтаксис

Правильный формат команды:

sudo chown [опции] new_owner[:new_group] файл_или_каталог

Примеры:

sudo chown maketech:maketechpublic docker-machine
sudo chown maketech docker-machine   # изменить только владельца
sudo chown :maketechpublic docker-machine  # изменить только группу
sudo chown 1002:1002 docker-machine  # по UID:GID
sudo chown -R maketech:maketechpublic virtual-machine  # рекурсивно

Важно: для изменения владельца обычно требуются права суперпользователя — поэтому часто используется sudo.

Проверка текущих прав перед изменением

Перед изменением владельца проверьте текущие права и владельца:

ls -l имя_файла_или_каталога

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

$ ls -l
total 1964
-rw-r--r-- 1 userkubetrain user_kubetrain 2148 Mar 18 2019 certnew.cer
-rw-r--r-- 1 maketech     user_kubetrain   48 Jan 29 10:13 docker-machine

В третьей и четвертой колонках указаны владелец и группа соответственно.

Изменение только владельца

Чтобы изменить только владельца, укажите новое имя пользователя без двоеточия или с двоеточием и пустой группой:

sudo chown maketech docker-machine
sudo chown maketech: docker-machine   # двоеточие означает: не менять группу

Затем повторно выполните ls -l, чтобы убедиться, что владелец сменился.

Изменение только группы

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

sudo chown :maketechpublic docker-machine
# или эквивалентно
sudo chgrp maketechpublic docker-machine

Если нужно применить к каталогу и всем вложенным файлам — добавьте -R.

sudo chown -R :maketechpublic docker-machine

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

Флаг -R (или –recursive) применяет изменение ко всем файлам и подкаталогам внутри указанной директории.

sudo chown -R maketech:maketechpublic /srv/project

Используйте осторожно — рекурсивная операция может изменить права для больших деревьев и сервисов.

Работа с символьными ссылками и специальными опциями

chown по умолчанию не изменяет владельца у самого файла, на который указывает символьная ссылка; но поведение зависит от опций и реализации (GNU chown поддерживает -h):

sudo chown -h newowner symlink  # изменить владельца самой ссылки, а не целевого файла

Полезные опции:

  • -R, –recursive — рекурсивно
  • -h, –no-dereference — изменить ссылку, а не объект под ней
  • –reference=REF — установить владельца/группу по образцу REF

Использование UID/GID вместо имён

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

sudo chown 1002:1002 файл   # установить владельца и группу по числам

Это важно при миграции между системами, где имена пользователей могут не совпадать, но UID — сохраняются.

Типичные ошибки и почему chown может не сработать

  • Нет прав суперпользователя: вы получите ошибку «Operation not permitted». Добавьте sudo или войдите как root.
  • Файловая система доступна только для чтения (read-only): проверяйте mount и атрибуты.
  • Неразрешённые пользователи/группы: убедитесь, что указанные имена существуют в /etc/passwd и /etc/group.
  • Использование NFS с root_squash: root на клиенте может не иметь прав на изменение владельца на NFS-сервере.

Когда лучше не применять chown

  • Если вы только хотите изменить права доступа — используйте chmod.
  • Для управления доступом в сложных сценариях лучше ACL (setfacl/getfacl).
  • Для совместного доступа временно лучше добавить пользователей в группу, а затем управлять правами через group permissions.

Альтернативы и дополнительные инструменты

  • chgrp — изменить только группу.
  • chmod — изменить разрешения (rwx).
  • setfacl/getfacl — гибкие ACL для точного контроля доступа.
  • rsync –numeric-ids при переносе файлов сохраняет UID/GID.

Пошаговый чеклист для операции смены владельца (SOP)

  1. Проверить владельца и права: ls -l /path
  2. Найти необходимые UID/GID, если нужно: id username; getent group groupname
  3. Выполнить команду сначала на одном тестовом файле/директории.
  4. Проверить результат: ls -l
  5. Если всё верно, применить -R к основной директории.
  6. Перезапустить сервисы, которые зависят от прав, если требуется.
  7. Протестировать доступ от имени целевых пользователей.

Ролевые подсказки (кратко)

  • Для системного администратора: всегда делайте бэкап и тесты на непроизводственном хосте перед массовыми изменениями.
  • Для разработчика: используйте chown для устранения проблем с правами при локальном развёртывании.
  • Для оператора CI/CD: учитывайте UID/GID контейнеров и хост-системы при монтировании томов.

Критерии приёмки

  • Владелец и/или группа изменены в соответствии с требованиями (ls -l показывает нужные значения).
  • Сервисы работают корректно после изменения прав.
  • Нет открытых проблем доступа у целевых пользователей.

Тестовые сценарии (acceptance)

  • Изменение владельца для одного файла: выполнить chown и проверить ls -l.
  • Рекурсивное изменение: для временной копии каталога выполнить chown -R и сверить владельцев всех файлов.
  • Работа с символьными ссылками: проверить, изменяет ли -h владельца ссылки, а не целевого файла.

Примеры ошибок и способы их устранения

  • Ошибка: Operation not permitted — проверьте sudo/root и root_squash на NFS.
  • Ошибка: invalid user — проверьте /etc/passwd или используйте uid.
  • После chown сервис перестал запускаться — проверьте права на файлы конфигурации и каталоги, верните прежние значения через резервную копию.

Краткая таблица-компакт (cheat sheet)

# изменить владельца
sudo chown alice file
# сменить владельца и группу
sudo chown alice:devgroup file
# изменить только группу
sudo chown :devgroup file
# рекурсивно
sudo chown -R alice:devgroup /path/to/dir
# по UID:GID
sudo chown 1001:1001 /path/to/file
# изменить владельца самой символьной ссылки
sudo chown -h alice symlink

Безопасность и соответствие (коротко)

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

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

Можно ли обычному пользователю изменить владельца файла?

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

Как вернуть прежнего владельца, если я ошибся?

Если есть запись прежнего владельца (например, в логах или бэкапе), выполните sudo chown olduser:oldgroup путь. Без этой информации восстановление сложнее.

Отличие chown и chmod?

chown меняет владельца/группу, chmod меняет разрешения (rwx).


Краткое резюме:

  • chown управляет владельцем и группой файла/каталога;
  • для изменения требуется root; используйте sudo и тестируйте на примерах;
  • применяйте -R осторожно и учитывайте особенности NFS и символьных ссылок.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро