Команда Chown в Linux

Chown Command in Linux (File Ownership)

29 Июня 2020 | Терминал

В этом руководстве мы покажем вам, как использовать chown команду на практических примерах.

Команда Chown в Linux

Команда chown позволяет изменить владельца пользователя и / или группы для данного файла, каталога или символической ссылки.

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


Как пользоваться 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: Permission denied».

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


    Комментарии

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

Загрузка комментариев...