Команда chown в Linux

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

Утилита сhown (ее название произошло от сочетания слов «change» и «mode») позволяет изменять владельца или группу у папок и файлов.

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

Синтаксис

Рассмотрим синтаксис команды.

chown [OPTIONS] USER[:GROUP] FILE(s)

  • USER (имя пользователя или идентификатор нового владельца)
  • GROUP (название новой группы или ее индекс)
  • FILE(s) (наименование одного или нескольких файлов, каталогов, ссылок).

Основные опции:

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

Примеры

Для первого примера изменим владельца "root" папки "katalog" на "ya". Для этого запустим команду без опций, укажем имя пользователя и путь к каталогу.

chown ya /root/katalog

Меняем user

Здесь:

  • ya - имя пользователя;
  • /root/katalog - полный путь до каталога katalog.

Меняем владельца и группу одновременно.

Чтобы изменить сразу владельца и группу необходимо применить двоеточие без промежуточных пробелов. Синтаксис данной процедуры такой: USER:GROUP KATALOG.

Для примера изменим владельца и group для каталога "katalog" на "ya" и "nogroup".

chown ya:nogroup /root/katalog

Меняем права доступа

Тоже самое сделаем для документа "dokument".

chown ya:nogroup dokument
Права доступа на документ

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

Бывают ситуации, когда нужно поменять только группу. Для этого, впереди нужно добавить ":". Поменяем группу документа "dokument" на "nogroup".

chown :nogroup dokument

Group

Рекурсивно массово меняем права на папки и файлы

Чтобы последовательно (алгоритмически) проводить работу со всеми файлами и каталогами, используется аргумент -R (–recursive). Для удобства предварительно зайдем в целевую директорию с помощью команды cd.

Массово поменяем владельца и группу директории "primercataloga" включая вложенные папки и файлы.

cd /root

chown -R ya:nogroup *

ВАЖНО! Если слишком много файлов в каталоге, можно встретить ошибку "bash: /usr/bin/chown: Argument list too long". В таком случае требуется выполнить команду:

chown -R ya:nogroup .

Если требуется поменять рекурсивно не только владельца и группу, а еще и права каталога, то используется другая команда chmod с таким же параметром -R (recursive).

Установим в директории /var/www 644. Что означает:

  • 6 - читать и писать владельцу;
  • 4 - читать группе;
  • 4 - читать все остальным.

chmod -R 644 /var/www