Как использовать команду Chown (владение файлом) в Linux

12 set 2022 3 min di lettura
Как использовать команду Chown (владение файлом) в Linux
Indice dei contenuti

Введение

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

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

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

Используйте команду chown

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

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

chown [OPTIONS] USER[:GROUP] FILE(s)

ПОЛЬЗОВАТЕЛЬ — это имя пользователя или идентификатор пользователя (UID) нового владельца. ГРУППА — это имя новой группы или идентификатор группы (GID). ФАЙЛ(ы) — это имя одного или нескольких файлов, каталогов или ссылок. Перед числовыми идентификаторами должен стоять символ « .

  • ПОЛЬЗОВАТЕЛЬ - Если указан только пользователь, указанный пользователь станет владельцем указанных файлов, группа владельцев не изменится.
  • ПОЛЬЗОВАТЕЛЬ: - Когда за именем пользователя следует двоеточие " : " и имя группы не назначено, пользователь станет владельцем файлов, а группа-владелец файлов будет изменена на группу, связанную с пользователем.
  • ПОЛЬЗОВАТЕЛЬ: ГРУППА - Если указаны и пользователь, и группа (без пробела между ними), владельцем файлов станет указанный пользователь, а группа владельцев изменится на указанную.
  • : ГРУППА — если пользователь не указан, а группе предшествует двоеточие « : », только группа, владеющая файлами, изменяется на указанную группу.
  • : Если указан только символ " : ", без указания пользователя и группы, никаких изменений не производится.

По умолчанию, в случае успеха, chown ничего не выводит.

Используйте команду ls -l, чтобы определить, кому принадлежит файл или к какой группе он принадлежит:

ls -l filename.txt
-rw-r--r-- 12 noviello noviello 1239291 Aug 8 03:04 filename.txt
 |[-][-][-]- [------] [---]
 | |
 | +-----------> Group
 +-------------------> Owner

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

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

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

chown USER FILE

Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем noviello:

chown noviello file1

Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка, разделенного пробелами. Следующая команда изменяет владельца файла с именем file1 и каталога dir1 на нового владельца с именем noviello:

chown noviello file1 dir1

Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). Следующий пример изменит владельца файла с именем file2 на нового владельца с UID 1000:

chown 1000 file2

Если пользователь noviello имеет в качестве UID «1000», а имя пользователя другого пользователя — «1000», но имеет UID 1002, использование параметра « + » однозначно меняет владельца на noviello.

chown +1000 file2

Изменить владельца и группу файла

Чтобы изменить и владельца, и группу файла, используйте команду chown, за которой следует новый владелец и группа, разделенные двоеточием « : » без промежуточных пробелов, и целевой файл.

chown USER:GROUP FILE

Следующая команда изменит владельца файла с именем file1 на нового владельца с именем noviello и группу пользователей:

chown noviello:users file1

Если вы опустите имя группы после двоеточия " : ", группа файла изменится на группу доступа указанного пользователя:

chown noviello: file1

Изменить группу файла

Чтобы изменить только группу файла, используйте команду chown, за которой следует двоеточие « : », имя новой группы (без пробела между ними) и целевой файл в качестве аргумента:

chown:GROUP FILE

Следующая команда изменит группу владельцев файла с именем file1 на www-data:

chown:www-data file1

Другая команда, которую вы можете использовать для изменения группы владельцев файла, — chgrp.

Изменить владельца символических ссылок

Когда параметр recursive не используется, команда 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

Использование справочного файла

Опция --reference = ref_file позволяет вам изменить группу пользователей и владельцев определенных файлов, чтобы они совпадали с указанным эталонным файлом ( ref_file ). Если указанный файл является символической ссылкой, chown будет использовать пользователя и группу целевого файла.

chown --reference=REF_FILE FILE

Например, следующая команда назначит группу и пользователя, владеющего файлом1, файлу2.

chown --reference=file1 file2

Вывод

chown — это утилита командной строки Linux/UNIX для изменения пользователя и/или группы, которой принадлежит файл.

Чтобы узнать больше о команде chown, введите следующую команду:

man chown

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.