В операционной системе Линукс множество пользователей и групп. При создании файла тот администратор, от чьего имени он был образован, становится его владельцем, который находится в собственной группе, но также может объединяться с другими.
Утилита с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
Здесь:
- ya - имя пользователя;
- /root/katalog - полный путь до каталога katalog.
Меняем владельца и группу одновременно.
Чтобы изменить сразу владельца и группу необходимо применить двоеточие без промежуточных пробелов. Синтаксис данной процедуры такой: USER:GROUP KATALOG.
Для примера изменим владельца и group для каталога "katalog" на "ya" и "nogroup".
chown ya:nogroup /root/katalog
Тоже самое сделаем для документа "dokument".
Изменение только Группы.
Бывают ситуации, когда нужно поменять только группу. Для этого, впереди нужно добавить ":". Поменяем группу документа "dokument" на "nogroup".
chown :nogroup dokument
Рекурсивно массово меняем права на папки и файлы
Чтобы последовательно (алгоритмически) проводить работу со всеми файлами и каталогами, используется аргумент -R (–recursive). Для удобства предварительно зайдем в целевую директорию с помощью команды cd.
Массово поменяем владельца и группу директории "primercataloga" включая вложенные папки и файлы.
cd /root
chown -R ya:nogroup *
ВАЖНО! Если слишком много файлов в каталоге, можно встретить ошибку "bash: /usr/bin/chown: Argument list too long". В таком случае требуется выполнить команду:
chown -R ya:nogroup .
Установим в директории /var/www 644. Что означает:
- 6 - читать и писать владельцу;
- 4 - читать группе;
- 4 - читать все остальным.
chmod -R 644 /var/www