Команда Chown в Linux (владение файлом)

Команда Linux Chown

Команда 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

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

 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

Скорее всего, вместо смены владельца цели вы получите ошибку «невозможно разыменовать 'symlink1': отказано в доступе».

Ошибка возникает из-за того, что в большинстве дистрибутивов 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 для изменения владельца файла и группы.

Чтобы узнать больше о команде chown , посетите страницу руководства chown или введите man chown в терминале.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

терминал Чауна

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *