Владелец файла в Linux: как команда chown решает проблемы с доступом

Владелец файла в Linux: как команда chown решает проблемы с доступом

Вы столкнулись с ошибкой "Permission denied" и не можете понять, почему скрипт не запускается или веб-сервер отказывается читать файлы? Чаще всего корень проблемы кроется не в самих правах доступа, а в том, кому эти файлы принадлежат.

В Linux абсолютно всё — это файлы, и у каждого из них есть свой хозяин. Именно владелец решает, что можно делать с данными. Команда `chown` — это ваш ключ к контролю над файловой системой.

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

Мы разберём простой и понятный синтаксис `chown`, покажем на реальных примерах, как исправить типичные ошибки конфигурации, и раскроем силу рекурсивного изменения прав. Забудьте о путанице и блокировках — станьте полноправным администратором своей системы.

Готовы взять управление файлами в свои руки? Читайте статью, и вы больше никогда не будете бояться сообщений о недостатке прав.


Основа философии Linux - все объекты операционной системы - это файлы, для предоставления доступа к тем или иным возможностям системы мы просто даем доступ пользователю к нужным файлам или убираем. Я более подробно рассказывал обо всех правах в статье права доступа к файлам в Linux, здесь же скажу только что у каждого файла есть три группы прав: для владельца, группы и всех остальных.

При создании файла ему тот пользователь, от имени которого он был создан становится его владельцем, а группой устанавливается основная группа владельца. Но владельца файла и группу можно менять, для этого используются команды chown и chgrp. В этой статье будет рассмотрена команда chown linux, а также основные примеры её использования.


Содержание статьи

Команда chown Linux

1. Синтаксис и опции

Синтаксис chown, как и других подобных команд linux очень прост:

$ chown пользователь опции /путь/к/файлу

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

  • -c, --changes - подробный вывод всех выполняемых изменений;
  • -f, --silent, --quiet - минимум информации, скрыть сообщения об ошибках;
  • --dereference - изменять права для файла к которому ведет символическая ссылка вместо самой ссылки (поведение по умолчанию);
  • -h, --no-dereference - изменять права символических ссылок и не трогать файлы, к которым они ведут;
  • --from - изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа;
  • -R, --recursive - рекурсивная обработка всех подкаталогов;
  • -H - если передана символическая ссылка на директорию - перейти по ней;
  • -L - переходить по всем символическим ссылкам на директории;
  • -P - не переходить по символическим ссылкам на директории (по умолчанию).

Утилита имеет ещё несколько опций, но это самые основные и то большинство из них вам не понадобится. А теперь давайте посмотрим как пользоваться chown.

2. Использование chown

Например, у нас есть несколько папок dir и их владелец пользователь sergiy:

ls

Владелец файла в Linux: как команда chown решает проблемы с доступом

Давайте изменим владельца папки dir1 на root:

chown root ./dir1

Владелец файла в Linux: как команда chown решает проблемы с доступом

Если вы хотите поменять сразу владельца и группу каталога или файла запишите их через двоеточие, например, изменим пользователя и группу для каталога dir2 на root:

chown root:root ./dir2

Владелец файла в Linux: как команда chown решает проблемы с доступом

Если вы хотите чтобы изменения применялись не только к этому каталогу, но и ко всем его подкаталогам, добавьте опцию -R:

chown -R root:root ./dir3

Владелец файла в Linux: как команда chown решает проблемы с доступом

Дальше давайте изменим группу и владельца на www-data только для тех каталогов и файлов, у которых владелец и группа root в каталоге /dir3:

chown --from=root:root www-data:www-data -cR ./

Владелец файла в Linux: как команда chown решает проблемы с доступом

Для обращения к текущему каталогу используйте путь ./. Мы его использовали и выше. Далее указываем нужную группу с помощью опции --from и просим утилиту выводить изменения, которые она делает в файловой системе с помощью опции -c.

Выводы

Команда chown очень простая и позволяет только менять владельца и группу. Если вы хотите более подробно настроить права для владельца, группы и всех остальных, вам понадобится команда chmod. Права - довольно частая проблема при настройке работы различных программ, знание двух этих команд плюс ls и namei может помочь исправить много ошибок.

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив