Командная строка: chown
chown - меняем владельца файла или директории
![Photo by Polina Kuzovkova on Unsplash](/img/2021/03/main_200320212215.jpg)
В таких операционных системах, как Linux или macOS (впрочем, как и в любых операционных системах, основу которых составляет UNIX), каждый файл и директория имеют своего владельца.
Именно владелец вправе делать с файлом все что угодно, определяя его дальнейшую судьбу.
Текущий владелец (а кроме владельца еще и root пользователь) может изменить владельца файла или директории с помощью команды chown
.
Команда chown
в своем простейшем представлении имеет следующий синтаксис:
chown <owner> <file>
Например, чтобы сделать пользователя newuser
владельцем файла text.txt
, находящегося в корне проекта, нужно сделать так:
chown newuser /text.txt
Часто нам нужно поменять не только владельца определенной директории, но и владельца всех находящихся в ней папок и файлов. Как раз для таких целей предназначена опция -R
, в этом случае синтаксис команды будет иметь вид:
chown -R <owner> <directory>
Например, так:
chown -R newuser /home
мы установим для директории home
и всех вложенных в нее папок и файлов владельца newuser
.
Кроме владельца для файлов и директорий можно определить группу:
chown <owner>:<group> <file>
Например:
chown newuser:users /text.txt
Так же, с помощью уже другой команды chgrp
, для файла или директории можно сменить только группу:
chgrp <group> <file>
Обратимся к основным полезным опциям команды chown
:
-f
: скрываем сообщения об ошибках;-H
: если передана символическая ссылка на директорию, переходим по ней;-h
: изменяем владельца и группу только для символических ссылок, не затрагивая файлы, к которым они ведут;-L
: переходим по всем символическим ссылкам, находящимся в директории;-P
: не переходим по всем символическим ссылкам, находящимся в директории (поведение команды по умолчанию);-R
: рекурсивно меняем владельца и группу для всех вложенных папок и файлов;-n
: интерпретируем идентификаторы пользователя и группы как числовые значения;-v
: выводим подробную информацию, показывая файлы, для которых изменился владелец.
Следует знать, что опции -H
, -L
, -P
не работают без опции -R
.
Итак, команда chown
позволяет быстро изменить владельца папки или файла, а в сочетании с опцией -R
- владельца и группу не только самой папки, но и всех вложенных в нее папок и файлов. Таким образом, мы можем решить значительное количество проблем, связанных с нарушением прав, в различных проектах.
Спасибо за внимание.