Команда chown
позволяет вам изменить пользователя и / или группу, владеющую данным файлом, каталогом или символической ссылкой.
В Linux все файлы связаны с владельцем и группой и им назначаются права доступа для владельца файла, членов группы и других.
В этом руководстве мы покажем вам, как использовать команду chown
на практических примерах.
Как использовать chown
Прежде чем перейти к использованию команды chown
, давайте начнем с обзора основного синтаксиса.
Выражения команды chown
имеют следующую форму:
chown [OPTIONS] USER[:GROUP] FILE(s)
USER
— это имя пользователя или идентификатор пользователя (UID) нового владельца. GROUP
— это имя новой группы или идентификатор группы (GID). FILE(s)
— это имя одного или нескольких файлов, каталогов или ссылок. Цифровые идентификаторы должны начинаться с символа +
.
USER
— Если указан только пользователь, указанный пользователь станет владельцем данных файлов, принадлежность группы не изменится.USER:
— Если после имени пользователя ставится двоеточие:
и имя группы не указано, пользователь становится владельцем файлов, а права собственности группы файлов изменяются на группу входа пользователя.USER:GROUP
— Если указаны и пользователь, и группа (без пробелов между ними), право собственности пользователя на файлы изменяется на данного пользователя, а право собственности на группу изменяется на данную группу.:GROUP
— Если пользователь не указан, а группа имеет префикс двоеточия:
то для данной группы изменяется только групповое владение файлами.:
Если указано только двоеточие:
без указания пользователя и группы, никаких изменений не производится.
По умолчанию в случае успеха chown
не производит никакого вывода и возвращает ноль.
Используйте команду ls -l
чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt
|[-][-][-]- [------] [---]
| |
| +-----------> Group
+-------------------> Owner
Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом, и только в группе, членом которой они являются. Пользователи с правами администратора могут изменять групповое владение всеми файлами.
Как изменить владельца файла
Чтобы изменить владельца файла, используйте команду chown
за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
chown USER FILE
Например, следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
:
chown linuxize file1
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка, разделенного пробелами. Приведенная ниже команда меняет владельца файла с именем file1
и каталога dir1
на нового владельца с именем linuxize
:
chown linuxize file1 dir1
Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). В следующем примере будет изменено право собственности на файл с именем file2
новому владельцу с UID 1000
:
chown 1000 file2
Если числовой владелец существует как имя пользователя, то право собственности будет передано имени пользователя. Чтобы избежать этого префикса ID с +
:
chown 1000 file2
Как изменить владельца и группу файла
Для того, чтобы изменить владельца и группу с использованием файловом chown
команды следуют новым владельцем и группой , разделенных двоеточием ( :
) без пробелов и целевого файла.
chown USER:GROUP FILE
Следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
и сгруппирует users
:
chown linuxize:users file1
Если опустить имя группы после двоеточия ( :
) группа файла изменяется на указанного пользователя группы входа в систему :
chown linuxize: file1
Как изменить группу файла
Чтобы изменить только группу с использованием файловом chown
команды , за которым следует двоеточие ( :
) и новое название группы (без пробела между ними) и целевого файла в качестве аргумента:
chown :GROUP FILE
Следующая команда изменит группу владельцев файла с именем file1
на www-data
:
chown :www-data file1
Еще одна команда, которую вы можете использовать для изменения группового владения файлами, — это chgrp
.
Как изменить право собственности на символические ссылки
Когда рекурсивная опция не используется, команда chown
изменяет групповое владение файлами, на которые указывают символические ссылки , а не сами символические ссылки .
Например, если вы попытаетесь изменить владельца и группу символической ссылки symlink1
которая указывает на /var/www/file1
, chown
изменит владельца файла или каталога, на который указывает символическая ссылка:
chown www-data: symlink1
Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать символическую ссылку1: разрешение отклонено».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Этот параметр указан в /proc/sys/fs/protected_symlinks
. 1
означает включен, а 0
отключен. Мы рекомендуем не отключать защиту символических ссылок.
Чтобы изменить групповое владение самой символической ссылкой, используйте параметр -h
:
chown -h www-data symlink1
Как рекурсивно изменить право собственности на файл
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R
( --recursive
):
chown -R USER:GROUP DIRECTORY
В следующем примере будет изменено владение всеми файлами и подкаталогами в каталоге /var/www
новому владельцу и группе с именем www-data
:
chown -R www-data: /var/www
Если каталог содержит символические ссылки, передайте параметр -h
:
chown -hR www-data: /var/www
Другие параметры, которые можно использовать при рекурсивном изменении владельца каталога, — это -H
и -L
.
Если аргумент, переданный команде chown
является символической ссылкой, указывающей на каталог, опция -H
заставит команду пройти по нему. -L
указывает chown
по каждой символической ссылке на обнаруженный каталог. Обычно вы не должны использовать эти параметры, потому что вы можете испортить свою систему или создать угрозу безопасности.
Использование справочного файла
Параметр --reference=ref_file
позволяет вам изменить права собственности пользователя и группы на данные файлы, чтобы они были такими же, как у указанного справочного файла ( ref_file
). Если справочный файл является символической ссылкой, chown
будет использовать пользователя и группу целевого файла.
chown --reference=REF_FILE FILE
Например, следующая команда назначит пользователю и группе владение file1
для file2
chown --reference=file1 file2
Выводы
chown
— это утилита командной строки Linux / UNIX для изменения владельца файла и / или группы.
Добавить комментарий