Битлента
Сетевые команды и утилиты6 мин чтения·

chown: как сменить владельца и группу файла и не навредить системе

Как работает chown в Linux и macOS: форматы пользователь:группа, ключ -R, права администратора, типичные ошибки Permission denied и безопасная проверка на тестовой папке.

Кратко

chown пользователь:группа путь меняет владельца и группу файла. Обычно для этого нужны права администратора (sudo). Ключ -R затрагивает всё вложенное, поэтому сначала проверьте путь и потренируйтесь на тестовой папке: рекурсивная смена на системных каталогах опасна.

Владелец, группа и почему из-за них появляется Permission denied

У каждого файла в Linux и macOS есть владелец и группа. Их вместе с правами показывает ls -l: в строке после набора прав и счётчика ссылок идут два имени, первое — владелец, второе — группа. Когда программа или вы сами пытаетесь изменить файл, система сравнивает ваш идентификатор с этими данными и решает, разрешено ли действие.

Типичная ситуация: вы однажды запустили команду через sudo в своей домашней папке, и созданные файлы получили владельца root. Позже обычный пользователь не может их изменить, и появляется ошибка Permission denied. Причина не в правах доступа как таковых, а в том, что владелец другой.

Команда chown (change owner) меняет владельца, а при необходимости и группу. Она не заменяет chmod, который меняет набор прав: это два независимых параметра, и про chmod рассказано в разделе словаря и в статье про права на macOS.

Чтобы узнать, кто вы, выполните id: команда выводит ваше имя, идентификатор и группы. Сравните это с ls -l по проблемному файлу. Если имена различаются, смена владельца может помочь, но решайте после понимания причины.

Синтаксис: пользователь, группа и их сочетания

Общий вид: chown владелец:группа путь. Двоеточие отделяет владельца от группы, и допустимы три варианта записи.

ЗаписьЧто меняется
chown anna файлтолько владелец, группа прежняя
chown anna:staff файлвладелец и группа
chown :staff файлтолько группа, владелец прежний

В Linux также встречается запись через точку вместо двоеточия, но современные справки рекомендуют двоеточие. Имена пользователей и групп в разных системах свои: в macOS у обычного пользователя группа часто называется staff, а у администраторов есть группа admin; в Linux у каждого пользователя нередко есть одноимённая группа. Не копируйте имена из чужих примеров, проверьте свои командами id и ls -l.

Права администратора нужны почти всегда, если вы меняете владельца на другого пользователя: обычному пользователю система такой передачи не разрешает. Если вы остаётесь владельцем, а меняете только группу на ту, в которой состоите, права администратора могут не понадобиться. Для запуска с повышенными правами используют sudo, описанный в разделе словаря. Вводите его только когда понимаете, зачем.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Ключ -R: рекурсия и риск

Ключ -R применяет смену к папке и всему, что внутри. Это удобно, но именно с рекурсией связаны серьёзные ошибки. Неверный путь или лишний пробел способны затронуть системные каталоги, после чего система или программы перестают работать. Вернуть прежние значения вручную бывает сложно, потому что исходные владельцы у разных файлов отличались.

Перед рекурсивной командой выполните проверку:

  1. Выведите путь через echo, особенно если он содержит переменную: echo "$DIR". Пустая переменная может превратить путь в корень.
  2. Посмотрите содержимое: ls -la путь, и убедитесь, что это нужная папка.
  3. Оцените масштаб: find путь | wc -l покажет, сколько объектов затронет команда.
  4. Отработайте синтаксис на тестовой папке в своём домашнем каталоге.
  5. Только затем запускайте на реальном пути и ограничивайтесь самым узким каталогом.

Не запускайте chown -R на корне, на /etc, /usr, /bin, а также на всей домашней папке без необходимости. Обычный chown без -R меняет владельца цели символической ссылки, а не самой ссылки; для самой ссылки служит ключ -h. При -R переход по ссылкам регулируют ключи -H, -L и -P, и их умолчания и тонкости различаются в GNU и BSD версиях, поэтому смотрите man chown своей системы. Не запускайте рекурсивную смену, пока не проверили, нет ли внутри ссылок на посторонние каталоги.

Безопасная тренировка на тестовой папке

Тестовая папка позволяет понять поведение, ничего не рискуя. Выполните шаги в своём домашнем каталоге. Команды с sudo меняют владельца на другого пользователя, поэтому для практики достаточно менять группу на свою собственную или оставаться владельцем.

  • mkdir -p ~/chown-test/sub && touch ~/chown-test/a.txt ~/chown-test/sub/b.txt — создаёт структуру.
  • ls -lR ~/chown-test — запишите, кто владелец.
  • id -gn — узнайте имя своей основной группы.
  • chown :ИМЯ_ГРУППЫ ~/chown-test/a.txt — смените группу, подставив своё имя из предыдущей строки.
  • chown -R :ИМЯ_ГРУППЫ ~/chown-test — применит смену ко всей тестовой папке.

После каждого шага смотрите ls -l, чтобы связать команду и результат. На этом этапе вы научились читать вывод и понимать, где менялась группа, а где владелец.

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

Разбор типичных ошибок

Если chown сообщает об ошибке, сначала прочитайте текст. Он обычно указывает причину прямо.

СообщениеВероятная причинаЧто сделать
Operation not permittedнет прав на смену владельцаиспользовать sudo или проверить, что вы владелец
No such file or directoryпуть указан невернопроверить ls и опечатки
invalid userтакого пользователя нет в системепроверить имя командой id имя
invalid groupтакой группы нетпосмотреть доступные группы
Read-only file systemдиск смонтирован только для чтенияпроверить параметры монтирования через mount

Если вы работаете с внешним накопителем с файловой системой, не поддерживающей владельцев, смена может быть невозможна или не иметь эффекта. В этом случае владелец определяется параметрами монтирования, и менять его через chown бессмысленно: смотрите статью про mount.

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

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
chownправаlinuxmacosвладелец

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

Читайте также