Android

Команда chown в linux (владение файлом)

Linux - Change owner or group of file

Linux - Change owner or group of file

Оглавление:

Anonim

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

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

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

Как использовать chown

Прежде чем перейти к использованию команды chown , давайте начнем с обзора основного синтаксиса.

Выражения команды chown принимают следующую форму:

chown USER 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

Только пользователь root или пользователь с правами sudo может изменить групповое владение файлом.

Как изменить владельца файла

Чтобы изменить владельца файла, используйте команду 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

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

чоун терминал